'ceph mgr enable/disable <module>' interrupts all other modules
Adding or removing Ceph Mgr Modules interrupts all other modules. While this might have minimal impact with background/long-running modules, for user-facing ones like Ceph Dashboard, it results, for example, in the users becoming logged out.
- Log to Ceph Dashboard
- Enable new module:
ceph mgr module enable hello
- All users logged/working on the Ceph dashboard will be automatically logged out.
Log traces confirm that on enable/disable, the ceph-mgr process is respawned and hence all Python modules are reloaded. This seems to come from the Active/Standby Mgr logic, so the question would be whether a change in the MgrMap for module enabling/disabling should trigger this logic (or what kind of issue this behaviour is trying to deal with).
#1 Updated by John Spray 9 months ago
Modules should try not to be too sensitive to mgr daemon restarts -- remember that these will also happen during e.g. upgrades.
The current behaviour of restarting on module enable/disable is just for simplicity/robustness. If it does seem worthwhile to implement dynamic activation of modules without a restart, then I would recommend still to keep the restart behaviour when a module is *dis*abled -- I'd rather not be worrying about how to handle a buggy module that e.g. doesn't shut down promptly.
#4 Updated by Lenz Grimmer 6 months ago
Note: there is an open pull request that will change the dashboard authentication scheme to using JWT tokens, which supposedly would resolve the "session loss at mgr restart" problem for the dashboard. But this is not fixing the root cause that the mgr performs a restart of all modules every time a module is enabled or disabled.