Package: ceph-mgr
Version: 18.2.7+ds-1+deb13u2
Severity: normal

Hello Debian Ceph Maintainers,

I would like to report several Python manager-module compatibility issues 
encountered while operating Ceph Reef 18.2.7 on Debian 13 (Trixie).

My environment is a manually deployed, three-node OpenStack cloud using Ceph as 
the RBD backend for Cinder and Glance.

Environment:

Debian GNU/Linux 13 (Trixie)
Ceph Reef 18.2.7
Installed ceph-mgr package: 18.2.7+ds-1+deb13u2
Package source: OpenStack Backports (OSBPO), trixie-gazpacho-backports-nochange
Three MONs, six OSDs, 97 placement groups
Ceph manager running on the controller node
I have encountered three issues involving the Ceph Python manager environment.

1. Missing NOTIFY_TYPES attribute causing manager-module crashes

Following the upgrade from 18.2.7+ds-1+deb13u1 to 18.2.7+ds-1+deb13u2, 
restarting ceph-mgr caused widespread Python module initialization failures.

Errors included:

AttributeError: type object 'Module' has no attribute 'NOTIFY_TYPES'

AttributeError: type object 'OSDSupport' has no attribute 'NOTIFY_TYPES'

The manager recorded 23 module crashes involving modules such as crash, 
devicehealth, progress and rbd_support.

I resolved these initialization failures by adding the following class 
attribute to MgrModule in:

/usr/share/ceph/mgr/mgr_module.py

NOTIFY_TYPES = []

After compiling the modified Python file to check its syntax and restarting 
ceph-mgr, the affected modules loaded successfully.

This is a modification to a package-owned source file and will likely be 
overwritten by subsequent package upgrades.

2. Earlier bcrypt-related Python compatibility issue

During an earlier troubleshooting session, the Ceph manager experienced Python 
module initialization failures involving bcrypt.

A local workaround involved modifying the manager’s Python source files, 
including mgr_util.py and mgr_module.py, to defer bcrypt imports rather than 
importing the module globally.

The workaround allowed the manager to start successfully.

After the latest package upgrade, mgr_util.py matches the packaged version, and 
the earlier bcrypt modification does not appear to be necessary in the current 
build.

I mention this because it may be relevant to the broader compatibility of Ceph 
Reef manager modules with Debian Trixie’s Python environment.

3. Remaining restful module / PyO3 cryptography failure

After restoring NOTIFY_TYPES, the manager subsequently recorded a crash 
involving the restful module.

The journal contained an ImportError referencing:

cryptography.hazmat.bindings._rust

and a PyO3 interpreter-initialization compatibility error.

The failure appears related to initialization of a Rust-backed Python extension 
within the manager’s Python module environment.

The restful module is disabled in my deployment, so I have not attempted a 
further source-code workaround.

This issue remains unresolved, although it does not currently prevent my 
OpenStack storage backend from functioning.

Current operational status

Following the NOTIFY_TYPES workaround:

All three monitors are in quorum.
All six OSDs are up and in.
All 97 placement groups are active+clean.
Ceph RBD storage remains operational.
The crash collector is successfully submitting reports.
The restful module compatibility issue remains.
I would appreciate guidance on whether these problems are known Ceph Reef 
compatibility issues with Debian Trixie’s Python dependencies, or whether they 
are specific to Debian/OSBPO packaging.

In particular, I would like to know whether the missing NOTIFY_TYPES attribute 
can be corrected in a future package revision so that local modifications to 
mgr_module.py are unnecessary.

I can provide additional journal excerpts, Ceph crash reports, package 
information and the relevant source-code changes if helpful.

Thank you for maintaining Ceph on Debian.

Best regards,

An OpenStack / Ceph homelab administrator
Sent from my iPad

Reply via email to