Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
9.0, 9.1, 9.2, 9.1.1, 9.3
-
None
Description
If a Cluster Singleton plugin is added, then the normal behavior is for the ClusterSingleton stop method to be called when the Overseer is closed.
However, if the plugin configuration is updated after it has been added, then the stop method is not called when the Overseer is closed.
When the /cluster/plugin API is called with an update payload, the ClusterSingletons.modified method is called, which adds the new plugin to the singletonMap (and starts it if applicable). Then it stops and removes the old one.
Given that the singletonMap is keyed on the plugin name, adding the replacement will overwrite the existing (old) entry in the map. Then when attempting to remove the previous plugin, the new replacement is inadvertently removed instead.
This leaves the singletonMap with no entry for the updated plugin. When the Overseer node goes down, the stop method is not called for the plugin because it does not have an entry in the map.
Attachments
Issue Links
- links to