ceph-volume fails to activate any OSDs: [2024-09-05 08:35:49,109][ceph_volume.process][INFO ] Running command: /usr/sbin/ceph-volume simple trigger 5-84bd2e57-ab7e-4dbb-86d6-fb76ed5168d9 [2024-09-05 08:35:49,498][ceph_volume.process][INFO ] stderr exception caught by decorator Traceback (most recent call last): File "/usr/lib/python3.13/site-packages/ceph_volume/decorators.py", line 59, in newfunc return f(*a, **kw) File "/usr/lib/python3.13/site-packages/ceph_volume/main.py", line 118, in main self.enable_plugins() ~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/site-packages/ceph_volume/main.py", line 83, in enable_plugins plugins = _load_library_extensions() File "/usr/lib/python3.13/site-packages/ceph_volume/main.py", line 188, in _load_library_extensions for ep in get_entry_points(group=group): ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File "/usr/lib/python3.13/site-packages/ceph_volume/main.py", line 14, in get_entry_points return entry_points().get(group, []) # type: ignore ^^^^^^^^^^^^^^^^^^ AttributeError: 'EntryPoints' object has no attribute 'get' --> AttributeError: 'EntryPoints' object has no attribute 'get' [2024-09-05 08:35:49,542][systemd][WARNING] command returned non-zero exit status: 1 [2024-09-05 08:35:49,542][systemd][WARNING] failed activating OSD, retries left: 1 Reproducible: Always Steps to Reproduce: 1. Boot rawhide ceph OSD node. 2. 3. Actual Results: No OSDs started. ceph-volume-19.1.1-0.1.fc42.noarch
Upstream: https://tracker.ceph.com/issues/68032 Fix: https://github.com/ceph/ceph/pull/59739
This bug appears to have been reported against 'rawhide' during the Fedora Linux 42 development cycle. Changing version to 42.
Patch that works and makes ceph-volume work again: --- src/ceph-volume/ceph_volume/main.py-orig 2025-01-21 12:28:33.000000000 -0800 +++ src/ceph-volume/ceph_volume/main.py 2025-03-07 20:17:40.378635856 -0800 @@ -11,7 +11,13 @@ from importlib.metadata import entry_points def get_entry_points(group: str): # type: ignore - return entry_points().get(group, []) # type: ignore + eps = entry_points() + if hasattr(eps, 'select'): + # New importlib.metadata uses .select() + return eps.select(group=group) + else: + # Fallback to older EntryPoints that returns dicts + return eps.get(group, []) # type: ignore except ImportError: from pkg_resources import iter_entry_points as entry_points # type: ignore
This is also broken in F41 (Ceph 19.2.2).
The patch from comment #3 works for me. May I ask for patching this downstream. Thank you
@kkeithle can you please apply the patch? It's really a oneliner (changing `return entry_points().get(group, [])` to `return eps.select(group=group)`). We currently do not have working `ceph-volume` in Fedora stable release :(
FEDORA-2025-f9b9fa57b3 (ceph-19.2.3-3.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-f9b9fa57b3
FEDORA-2025-f9b9fa57b3 (ceph-19.2.3-3.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2025-5cd8048b8b (ceph-19.2.3-4.fc44) has been submitted as an update to Fedora 44. https://bodhi.fedoraproject.org/updates/FEDORA-2025-5cd8048b8b
FEDORA-2025-5cd8048b8b (ceph-19.2.3-4.fc44) has been pushed to the Fedora 44 stable repository. If problem still persists, please make note of it in this bug report.