Venom1991 / refind-btrfs

Generate rEFInd manual boot stanzas from Btrfs snapshots
GNU General Public License v3.0
144 stars 8 forks source link

Failed to run after recent system update: AttributeError: 'Version' object has no attribute '_cmp_precedence_key' #34

Closed renyuneyun closed 1 year ago

renyuneyun commented 1 year ago

I did an update recently and refind-btrfs now refuses to run with the following output:

Initializing the block devices using lsblk.
Initializing the physical partition table for device '/dev/sda' using lsblk.
ERROR (refind_btrfs/__init__.py/main): An unexpected error happened, exiting...
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/refind_btrfs/__init__.py", line 80, in main
    exit_code = runner.run()
  File "/usr/lib/python3.10/site-packages/refind_btrfs/console/cli_runner.py", line 49, in run
    if not machine.run():
  File "/usr/lib/python3.10/site-packages/refind_btrfs/state_management/refind_btrfs_machine.py", line 102, in run
    while model.next_state():
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 401, in trigger
    return self.machine._process(func)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 1188, in _process
    return trigger()
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 426, in _trigger
    return self._process(event_data)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 435, in _process
    if trans.execute(event_data):
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 276, in execute
    self._change_state(event_data)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 286, in _change_state
    event_data.machine.get_state(self.dest).enter(event_data)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 128, in enter
    event_data.machine.callbacks(self.on_enter, event_data)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 1123, in callbacks
    self.callback(func, event_data)
  File "/usr/lib/python3.10/site-packages/transitions/core.py", line 1144, in callback
    func(*event_data.args, **event_data.kwargs)
  File "/usr/lib/python3.10/site-packages/refind_btrfs/state_management/model.py", line 140, in initialize_block_devices
    block_device.initialize_partition_tables_using(device_command_factory)
  File "/usr/lib/python3.10/site-packages/refind_btrfs/device/block_device.py", line 62, in initialize_partition_tables_using
    physical_device_command.get_partition_table_for(self)
  File "/usr/lib/python3.10/functools.py", line 926, in _method
    return method.__get__(obj, cls)(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/refind_btrfs/common/abc/commands/device_command.py", line 48, in _block_device_overload
    return self._block_device_partition_table(block_device)
  File "/usr/lib/python3.10/site-packages/refind_btrfs/system/lsblk_command.py", line 162, in _block_device_partition_table
    esp_uuid = self.package_config.esp_uuid
  File "/usr/lib/python3.10/site-packages/refind_btrfs/common/configurable_mixin.py", line 42, in package_config
    return package_config_provider.get_config()
  File "/usr/lib/python3.10/site-packages/refind_btrfs/utility/file_package_config_provider.py", line 119, in get_config
    persisted_package_config = persistence_provider.get_package_config()
  File "/usr/lib/python3.10/site-packages/refind_btrfs/utility/shelve_persistence_provider.py", line 56, in get_package_config
    item = self._get_item(db_key, local_db)
  File "/usr/lib/python3.10/site-packages/refind_btrfs/utility/shelve_persistence_provider.py", line 136, in _get_item
    return local_db.get(value_key) if actual_version >= current_version else None
  File "/usr/lib/python3.10/site-packages/semantic_version/base.py", line 504, in __ge__
    return self._cmp_precedence_key >= other._cmp_precedence_key
AttributeError: 'Version' object has no attribute '_cmp_precedence_key'

Guess this is due to some compatibility issue with a dependency.

(The title is ugly... But I don't have an answer to the exact cause. Happy for it to be changed to something better.)

Venom1991 commented 1 year ago

This is a duplicate of issue #33.

renyuneyun commented 1 year ago

Thanks. That's indeed duplicate, and the solution works. I checked the opened issues but did not check the closed ones. Apologize for that.