]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commit
mgr: isolated CherryPy to prevent global state sharing wip-nia-isolate-cherrypy
authorNizamudeen A <nia@redhat.com>
Thu, 5 Feb 2026 10:42:47 +0000 (16:12 +0530)
committerNizamudeen A <nia@redhat.com>
Fri, 6 Feb 2026 07:42:23 +0000 (13:12 +0530)
commita11f48155225ffec254dcd8705d22fa9b8ea4b76
tree435644b0a9cb0e9e4f0efe935b9c34a4845bfbcd
parent566f177dfb93bf23789d867e3c1ddf67d1cbef65
mgr: isolated CherryPy to prevent global state sharing

as the modules are now being loaded onto the main interpreter (see
https://github.com/ceph/ceph/pull/66244), the
cherrypy is getting hit with an issue where its global state is being
affecting all the modules updating the cherrypy config simultaneously in
the same tree.

So i am adding a CherryPyMgr which manages all the independent servers
that will be created across all modules. This CherryPyMgr will create
its own server instances by utilizing cherrypy's WSGI Server and
eliminates the global state sharing. Each module or app can create their
own tree and start an adapter which will open an independent server for
that app.

Fixes: https://tracker.ceph.com/issues/74643, https://tracker.ceph.com/issues/74543
Signed-off-by: Nizamudeen A <nia@redhat.com>
13 files changed:
.github/labeler.yml
ceph.spec.in
debian/ceph-mgr.install
src/pybind/mgr/CMakeLists.txt
src/pybind/mgr/cephadm/agent.py
src/pybind/mgr/cephadm/http_server.py
src/pybind/mgr/cephadm/services/service_discovery.py
src/pybind/mgr/cherrypy_mgr.py [new file with mode: 0644]
src/pybind/mgr/dashboard/module.py
src/pybind/mgr/dashboard/services/auth/auth.py
src/pybind/mgr/dashboard/tools.py
src/pybind/mgr/prometheus/module.py
src/pybind/mgr/tox.ini