mgr: failed dependency - no module named distutils
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
ceph (Ubuntu) | Status tracked in Oracular | |||||
Noble |
Fix Committed
|
High
|
Unassigned | |||
Oracular |
Fix Released
|
High
|
Unassigned |
Bug Description
[ Impact ]
dashboard and volume ceph mgr modules fail to activate under Python 3.12 due to use of distutils.
[ Test Plan ]
sudo snap install --channel latest/edge/core24 microceph
sudo microceph cluster bootstrap
sudo microceph status
for proposed testing we'll bake a core24-proposed snap to test with.
[ Where problems could occur ]
The proposed patch switches to using the vendored distutils in setuptools for the two imports in the ceph mgr modules that exhibit this issue - this is a minimal fix; codebase really needs refactoring to drop all use of distutils but that's outside of the scope on an SRU update.
Other distutils usage gets caught by the distutils_hack that setuptools uses to inject its vendored copy into the distutils module location.
[ Original Bug Report ]
When running microceph on a core24 base, the ceph-mgr has errors on enabling specific modules - volume and dashboard.
$ sudo microceph.ceph status
cluster:
id: 4e3ff87c-
health: HEALTH_WARN
Module 'volumes' has failed dependency: No module named 'distutils'
OSD count 0 < osd_pool_
services:
mon: 1 daemons, quorum joplin.glenview.com (age 5s)
mgr: joplin.
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:
distutils as a standalone package was removed from noble - the ceph codebase makes quite a bit of use of distuils still which gets picked up by the distutils_hack in setuptools but not in the context of the mgr daemon.
Changed in ceph (Ubuntu Noble): | |
status: | New → Triaged |
Changed in ceph (Ubuntu Oracular): | |
status: | New → Triaged |
Changed in ceph (Ubuntu Noble): | |
importance: | Undecided → High |
Changed in ceph (Ubuntu Oracular): | |
importance: | Undecided → High |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Note that ceph in oracular FTBFS due to a broken API in the snappy package which is pending a transition across Debian and Ubuntu.