Venom1991 / refind-btrfs

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

AttributeError: 'Version' object has no attribute '_cmp_precedence_key' #33

Closed rizzini closed 2 years ago

rizzini commented 2 years ago

I'm getting this error recently. I don't know what could be causing it. OS: Arch Linux / Full specs. refind-btrfs.conf

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'
Venom1991 commented 2 years ago

The python-semantic-version was recently updated so it could be that what was previously persisted (with the older version) is no longer compatible with the current version of the library.

I'd suggest that you try deleting the /var/lib/refind-btrfs/local_db file and running refind-btrfs again.

rizzini commented 2 years ago

That did it. Thank you!

Venom1991 commented 2 years ago

That's great! I'll add a comment to the AUR page and link this issue.