-
Bug
-
Resolution: Fixed
-
Low
-
3.5.1
-
None
If you upgrade a user plugin, every subsequent plugin installation will cause the upgraded plugin to re-install. I'm seeing this with Speakeasy as when I upgrade Speakeasy, any future extension installation causes Speakeasy to be reinstalled.
To replicate, install Speakeasy twice, then use the new extension wizard to create a new extension. The screen will hang and you'll see all sorts of exceptions in the logs, due to Speakeasy being reinstalled during the request. The exceptions indicate that code running after the speakeasy upgrade fails due to classes not being able to be loaded as the bundle was uninstalled.
The problem seems to be in DatabasePluginScanner. The 'units' variable stores the deployment unit to plugin id, and 'loadedPluginData' stores the plugin id to modified date. When an Speakeasy is upgraded, the old plugin is removed, including being removed from both these variables. While there may be temporarily two deployment units, the old and new, there is only one id. After the plugin system determined this is an upgrade, it asks the PluginLoader to remove the old plugin, but in doing so, it looks up the plugin id from the deployment unit and removes both the plugin id and deployment unit from from loadedPluginData and units, respectively. The former is the problem area. Next time a plugin is installed, the scanner will get the Speakeasy plugin id from its deployment and try to look up its last modified time from loadedPluginData. It won't find any, causing it to be re-installed.
[CONFSERVER-22341] Upgrade of user plugin causes it to be re-installed on every subsequent other plugin install
Workflow | Original: JAC Bug Workflow v3 [ 2894370 ] | New: CONFSERVER Bug Workflow v4 [ 2986939 ] |
Workflow | Original: JAC Bug Workflow v2 [ 2778627 ] | New: JAC Bug Workflow v3 [ 2894370 ] |
Status | Original: Resolved [ 5 ] | New: Closed [ 6 ] |
Workflow | Original: JAC Bug Workflow [ 2734760 ] | New: JAC Bug Workflow v2 [ 2778627 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v5 - TEMP [ 2400180 ] | New: JAC Bug Workflow [ 2734760 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v5 [ 2299452 ] | New: Confluence Workflow - Public Facing - Restricted v5 - TEMP [ 2400180 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v5.1 - TEMP [ 2233922 ] | New: Confluence Workflow - Public Facing - Restricted v5 [ 2299452 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v5 - TEMP [ 2195711 ] | New: Confluence Workflow - Public Facing - Restricted v5.1 - TEMP [ 2233922 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v5 [ 1924850 ] | New: Confluence Workflow - Public Facing - Restricted v5 - TEMP [ 2195711 ] |
Workflow | Original: Confluence Workflow - Public Facing - Restricted v3 [ 1733809 ] | New: Confluence Workflow - Public Facing - Restricted v5 [ 1924850 ] |
Workflow | Original: CONF Bug Subtask WF (TEMP) [ 1684942 ] | New: Confluence Workflow - Public Facing - Restricted v3 [ 1733809 ] |