https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42430 --- Comment #9 from Martin Renvoize (ashimema) <martin.renvoize@openfifth.co.uk> --- Created attachment 201413 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=201413&action=edit Bug 42430: Fix issue with stale plugin methods after plugin upgrade When a plugin is upgraded in place (by uploading a new version over the old one), the list of methods Koha knows about for that plugin can get out of date. For example, if a plugin used to have a "tool" method and the new version renames it to "admin", the staff interface can still show the old "Run tool" link, and clicking it produces an error saying the plugin has no "tool" method. This happens because the plugin upload runs inside a long-lived Plack worker that has already loaded the old version of the plugin in memory. When Koha scans the plugin to record its methods, Perl has no reason to re-read the file from disk, so the scan sees the old method list and stores that in the plugin_methods table. The plugin code on disk is new, but the record of what methods it has is stale. This patch forces Koha to throw away the in-memory copy of each plugin and reload it from disk before scanning, so the recorded list of methods matches the plugin that is actually installed. Test Plan: 1) Install the Batch Permission Modifier Plugin version 1.3.1 (this version exposes a "tool" method) 2) Go to Tools > Plugins and confirm the plugin row shows "Run tool" in its actions menu 3) Upload Batch Permission Modifier Plugin version 1.4.1 over the top of 1.3.1 (this version exposes "admin" instead of "tool") 4) Reload the Plugins page 5) Note the plugin still shows "Run tool" in its actions menu 6) Click "Run tool" 7) Note the error: the plugin has no "tool" method! 8) Apply this patch 9) Restart all the things! 10) Uninstall the plugin 11) Repeat steps 1-4 12) Note that "Run tool" is gone and "Run admin tool" appears in its place 13) Click "Run admin tool" and confirm it loads without error! Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> -- You are receiving this mail because: You are watching all bug changes.