mgr: do not load disabled modules#34846
Conversation
64d4dbb to
26a9509
Compare
for better readability Signed-off-by: Kefu Chai <kchai@redhat.com>
an option named "mgr_disabled_modules" is added in this change to prevent mgr from loading modules listed in this option. because mgr loads *all* modules found in the configured path, and per https://tracker.ceph.com/issues/45147, python subinterpreter could hang when loading numpy, so this behavior practically creates a deadlock in mgr. this issue is found when mgr uses python3.8 runtime. in development environment, it'd be inconvenient to disable the offending mgr module without changing the source code, even if we can choose to not install them, for instance, the enduser can workaround this issue by uninstalling `ceph-mgr-diskprediction-local`. an option would be useful in this case, so we can add the module to the list before mgr tries to load it. as this issue is found with python3.8 + diskprediction_local (numpy), so this mgr module is disabled by default if mgr is compiled with python3.8 runtime. Fixes: https://tracker.ceph.com/issues/45147 Signed-off-by: Kefu Chai <kchai@redhat.com>
jtlayton
left a comment
There was a problem hiding this comment.
I tested this and it seemed to fix the problem with the mgr never starting up on Fedora 32.
jdurgin
left a comment
There was a problem hiding this comment.
seems good for now, we should have a bug open for the long term fix (whatever it ends up being) to get the disk prediction module working with 3.8 and later
|
Hm, what about mon commands that are exposed by disabled modules? are they still registered? |
no, they are not anymore. as they are practically invisible from mgr if they are blacklisted. |
|
what about importing python dependencies in diskprediction_cloud only, if the module is active? |
i am not sure what you mean, only "diskprediction-local" is disabled if python3.8 is used, as this module imports numpy indirectly. how is this related to diskprediction_cloud? |
@jdurgin how about keeping https://tracker.ceph.com/issues/45147 open after this changeset is merged? |
Sounds good to me |
update to upstream release 15.2.10 fixes FS#70062 backport upstream workaround for incompatible mgr modules, references: https://tracker.ceph.com/issues/45147 ceph/ceph#34846 fixes FS#68726 git-svn-id: file:///srv/repos/svn-community/svn@912123 9fca08f4-af9d-4005-b8df-a31f2cc04f65
update to upstream release 15.2.10 fixes FS#70062 backport upstream workaround for incompatible mgr modules, references: https://tracker.ceph.com/issues/45147 ceph/ceph#34846 fixes FS#68726 git-svn-id: file:///srv/repos/svn-community/svn@912123 9fca08f4-af9d-4005-b8df-a31f2cc04f65
update to upstream release 15.2.10 fixes FS#70062 backport upstream workaround for incompatible mgr modules, references: https://tracker.ceph.com/issues/45147 ceph/ceph#34846 fixes FS#68726 git-svn-id: file:///srv/repos/svn-community/svn@912123 9fca08f4-af9d-4005-b8df-a31f2cc04f65
Fixes: https://tracker.ceph.com/issues/45147
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard backendjenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox