public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Max R. Carrara" <m.carrara@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v1 master ceph 0/2] Fix Ceph Squid Module Loading
Date: Wed, 16 Jul 2025 19:39:54 +0200	[thread overview]
Message-ID: <20250716173956.980112-1-m.carrara@proxmox.com> (raw)

Fix Ceph Squid Module Loading - v1
==================================

The first patch provides a workaround for the PyO3 ImportError that's
being thrown by the `restful` Ceph mgr Python module upon import.
This fixes the following error:

    2025-07-16T17:40:40.932+0200 7c315bc77080  1 mgr[py] Loading python module 'restful'
    2025-07-16T17:40:41.220+0200 7c315bc77080 -1 mgr[py] Module not found: 'restful'
    2025-07-16T17:40:41.220+0200 7c315bc77080 -1 mgr[py] Traceback (most recent call last):
      File "/usr/share/ceph/mgr/restful/__init__.py", line 1, in <module>
        from .module import Module
      File "/usr/share/ceph/mgr/restful/module.py", line 22, in <module>
        from OpenSSL import crypto
      File "/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
        from OpenSSL import SSL, crypto
      File "/lib/python3/dist-packages/OpenSSL/SSL.py", line 15, in <module>
        from cryptography import x509
      File "/lib/python3/dist-packages/cryptography/x509/__init__.py", line 7, in <module>
        from cryptography.x509 import certificate_transparency, verification
      File "/lib/python3/dist-packages/cryptography/x509/certificate_transparency.py", line 11, in <module>
        from cryptography.hazmat.bindings._rust import x509 as rust_x509
    ImportError: PyO3 modules compiled for CPython 3.8 or older may only be initialized once per interpreter process

    2025-07-16T17:40:41.222+0200 7c315bc77080 -1 mgr[py] Class not found in module 'restful'
    2025-07-16T17:40:41.222+0200 7c315bc77080 -1 mgr[py] Error loading module 'restful': (2) No such file or directory


The second patch fixes how the Ceph mgr looks up the NOTIFY_TYPES
attribute of the mgr Python modules' classes. This also happens to fix
the `mgr_module` Python module import failure. In total, this fixes
errors like the following:

    2025-07-16T17:40:41.222+0200 7c315bc77080  1 mgr[py] Loading python module 'selftest'
    2025-07-16T17:40:41.377+0200 7c315bc77080 -1 mgr[py] Module selftest has missing NOTIFY_TYPES member
    2025-07-16T17:40:41.377+0200 7c315bc77080 -1 mgr[py] Module not found: 'mgr_module'
    2025-07-16T17:40:41.377+0200 7c315bc77080 -1 mgr[py] AttributeError: type object 'Module' has no attribute 'NOTIFY_TYPES'
    
    2025-07-16T17:40:41.377+0200 7c315bc77080  1 mgr[py] Loading python module 'snap_schedule'
    2025-07-16T17:40:41.497+0200 7c315bc77080 -1 mgr[py] Module snap_schedule has missing NOTIFY_TYPES member
    2025-07-16T17:40:41.497+0200 7c315bc77080 -1 mgr[py] Module not found: 'mgr_module'
    2025-07-16T17:40:41.497+0200 7c315bc77080 -1 mgr[py] AttributeError: type object 'Module' has no attribute 'NOTIFY_TYPES'
    
    2025-07-16T17:40:41.497+0200 7c315bc77080  1 mgr[py] Loading python module 'stats'
    2025-07-16T17:40:41.636+0200 7c315bc77080  1 mgr[py] Loading python module 'status'
    2025-07-16T17:40:41.785+0200 7c315bc77080 -1 mgr[py] Module status has missing NOTIFY_TYPES member
    2025-07-16T17:40:41.785+0200 7c315bc77080 -1 mgr[py] Module not found: 'mgr_module'
    2025-07-16T17:40:41.785+0200 7c315bc77080 -1 mgr[py] AttributeError: type object 'Module' has no attribute 'NOTIFY_TYPES'

Note: These logs can be found inside the ceph-mgr logs in the
/var/log/ceph directory.

The commit messages of the supplied patches elaborate on further
details.

Summary of Changes
------------------

Max R. Carrara (2):
  provide workaround for PyO3 ImportError
  mgr: fix errors regarding module imports and NOTIFY_TYPES attributes

 ...ul-provide-workaround-for-PyO3-Impor.patch | 152 ++++++++++++++++++
 ...mport-by-making-NOTIFY_TYPES-in-py-m.patch |  56 +++++++
 patches/series                                |   2 +
 3 files changed, 210 insertions(+)
 create mode 100644 patches/0058-pybind-mgr-restful-provide-workaround-for-PyO3-Impor.patch
 create mode 100644 patches/0059-mgr-fix-module-import-by-making-NOTIFY_TYPES-in-py-m.patch

-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


             reply	other threads:[~2025-07-16 17:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-16 17:39 Max R. Carrara [this message]
2025-07-16 17:39 ` [pve-devel] [PATCH v1 master ceph 1/2] provide workaround for PyO3 ImportError Max R. Carrara
2025-07-16 17:39 ` [pve-devel] [PATCH v1 master ceph 2/2] mgr: fix errors regarding module imports and NOTIFY_TYPES attributes Max R. Carrara
2025-07-16 20:15 ` [pve-devel] applied-series: [PATCH v1 master ceph 0/2] Fix Ceph Squid Module Loading Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250716173956.980112-1-m.carrara@proxmox.com \
    --to=m.carrara@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal