Hello there,

could you perhaps provide some more information on how (or where) this
got fixed? It doesn't seem to be fixed yet on the latest Ceph Quincy
and Reef versions, but maybe I'm mistaken. I've provided some more
context regarding this below, in case that helps.


On Ceph Quincy 17.2.6 I'm encountering the following error when trying
to enable the dashboard (so, the same error that was posted above):

  root@ceph-01:~# ceph --version
  ceph version 17.2.6 (810db68029296377607028a6c6da1ec06f5a2b27) quincy (stable)

  root@ceph-01:~#  ceph mgr module enable dashboard
  Error ENOENT: module 'dashboard' reports that it cannot run on the active 
manager daemon: PyO3 modules may only be initialized once per interpreter 
process (pass --force to force enablement)

I was then able to find this Python traceback in the systemd journal:

  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.438+0200 
7fecdc91e000 -1 mgr[py] Traceback (most recent call last):
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/__init__.py", line 60, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from .module import Module, 
StandbyModule  # noqa: F401
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/module.py", line 30, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from .controllers import Router, 
json_error_page
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 1, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from ._api_router import 
APIRouter
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/controllers/_api_router.py", line 1, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from ._router import Router
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/controllers/_router.py", line 7, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from ._base_controller import 
BaseController
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/controllers/_base_controller.py", line 11, in 
<module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from ..services.auth import 
AuthManager, JwtManager
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/usr/share/ceph/mgr/dashboard/services/auth.py", line 12, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     import jwt
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/jwt/__init__.py", line 1, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from .api_jwk import PyJWK, 
PyJWKSet
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/jwt/api_jwk.py", line 6, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from .algorithms import 
get_default_algorithms
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/jwt/algorithms.py", line 6, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from .utils import (
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/jwt/utils.py", line 7, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from 
cryptography.hazmat.primitives.asymmetric.ec import EllipticCurve
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/ec.py", 
line 11, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from cryptography.hazmat._oid 
import ObjectIdentifier
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:   File 
"/lib/python3/dist-packages/cryptography/hazmat/_oid.py", line 7, in <module>
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]:     from 
cryptography.hazmat.bindings._rust import (
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: ImportError: PyO3 modules may only 
be initialized once per interpreter process
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.438+0200 
7fecdc91e000 -1 mgr[py] Class not found in module 'dashboard'
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.438+0200 
7fecdc91e000 -1 mgr[py] Error loading module 'dashboard': (2) No such file or 
directory
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.470+0200 
7fecdc91e000 -1 mgr[py] Module progress has missing NOTIFY_TYPES member
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.502+0200 
7fecdc91e000 -1 mgr[py] Module iostat has missing NOTIFY_TYPES member
  Sep 04 18:39:51 ceph-01 ceph-mgr[15669]: 2023-09-04T18:39:51.502+0200 
7fecdc91e000 -1 log_channel(cluster) log [ERR] : Failed to load ceph-mgr 
modules: dashboard


As the traceback above reveals, the dashboard uses `PyJWT`, which in
turn uses `cryptography`, and `cryptography` uses `PyO3`.

That led me to an issue[0] regarding this on `cryptography`'s side;
the Ceph Dashboard is apparently not the only thing that's affected
by this.

As it turns out, the maintainer of the Ceph AUR package has also
recently stumbled across this while re-packaging Ceph Reef 18.2.x
and has listed many more details regarding this issue[1].

Hope this helps!

[0]: https://github.com/pyca/cryptography/issues/9016
[1]: https://github.com/bazaah/aur-ceph/issues/20
_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to