[Bug 29121] New: Plugins with broken ->install prevent access to the plugins list
DELETE FROM plugin_data; (to make sure there's no __INSTALLED__ entry, do on a safe to delete DB).
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Bug ID: 29121 Summary: Plugins with broken ->install prevent access to the plugins list Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: major Priority: P5 - low Component: Plugin architecture Assignee: koha-bugs@lists.koha-community.org Reporter: tomascohen@gmail.com QA Contact: testopia@bugs.koha-community.org If a plugin is badly coded, like adding a table in their install method, without checking it doesn't exist first, the plugins home page gives a 500 error. To reproduce: 1. Install any plugin you like 2. Restart plack => SUCCESS: All good 3. Manually change its install method to: sub install { die "plugin, die!"; } 4. Run: $ koha-mysql kohadev 5. Point your browser to the plugins-home.pl page => FAIL: Boom -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Tomás Cohen Arazi <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|koha-bugs@lists.koha-commun |tomascohen@gmail.com |ity.org | Status|NEW |ASSIGNED CC| |jonathan.druart+koha@gmail. | |com, | |kyle@bywatersolutions.com, | |liz@bywatersolutions.com, | |martin.renvoize@ptfs-europe | |.com, | |nick@bywatersolutions.com -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Tomás Cohen Arazi <tomascohen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |Needs Signoff -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #1 from Tomás Cohen Arazi <tomascohen@gmail.com> --- Created attachment 125352 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125352&action=edit Bug 29121: Add new plugin exceptions This patch introduces two new exceptions: - Koha::Exceptions::Plugin::InstallDied - Koha::Exceptions::Plugin::UpgradeDied Tests are added for their stringification output. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #2 from Tomás Cohen Arazi <tomascohen@gmail.com> --- Created attachment 125353 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125353&action=edit Bug 29121: Regression tests This patch adds regression tests for broken ->install and ->upgrade methods on plugins. It adds two dummie plugins named BrokenInstall and BrokenUpgrade, for convenience. Tests are added to catch the warnings that will be logged when trying to load this plugins on different scenarios. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> -- You are receiving this mail because: You are watching all bug changes.
DELETE FROM plugin_data; (to make sure there's no __INSTALLED__ entry, do on a safe to delete DB).
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #3 from Tomás Cohen Arazi <tomascohen@gmail.com> --- Created attachment 125354 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125354&action=edit Bug 29121: Catch errors in ->install and ->upgrade calls on plugins This patch adds a try/catch block when instantiating plugins. Calling ->new on a plugin eventually triggers a call to ->install (this has always been like this since bug 7804). If the ->install method is somehow borked, then the process dies. We need to prevent that, and report back some error took place. That's what this patch does. The same happens to the ->upgrade. To test: 1. Install any plugin you like 2. Restart plack (just in case) => SUCCESS: All good 3. Manually change its install method to: sub install { die "plugin, die!"; } 4. Run: $ koha-mysql kohadev 5. Point your browser to the plugins-home.pl page => FAIL: Boom 6. Apply up to the regression tests 7. Run: $ kshell k$ prove t/db_dependent/Koha/Plugins/Plugins.t \ t/Koha/Exceptions.t => FAIL: Tests fail! 8. Apply this patch 9. Repeat 2 => SUCCESS: Tests pass! 10. Run: $ restart_all 11. Repeat 5 => SUCCESS: The page is not broken 12. Sign off :-D Note: I used $ kshell k$ perl misc/devel/install_plugins.pl to test as well. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Kyle M Hall <kyle@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Needs Signoff |Signed Off -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Kyle M Hall <kyle@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125352|0 |1 is obsolete| | Attachment #125353|0 |1 is obsolete| | Attachment #125354|0 |1 is obsolete| | --- Comment #4 from Kyle M Hall <kyle@bywatersolutions.com> --- Created attachment 125357 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125357&action=edit Bug 29121: Add new plugin exceptions This patch introduces two new exceptions: - Koha::Exceptions::Plugin::InstallDied - Koha::Exceptions::Plugin::UpgradeDied Tests are added for their stringification output. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Kyle M Hall <kyle@bywatersolutions.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125357|0 |1 is obsolete| | --- Comment #5 from Kyle M Hall <kyle@bywatersolutions.com> --- Created attachment 125358 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125358&action=edit Bug 29121: Add new plugin exceptions This patch introduces two new exceptions: - Koha::Exceptions::Plugin::InstallDied - Koha::Exceptions::Plugin::UpgradeDied Tests are added for their stringification output. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #6 from Kyle M Hall <kyle@bywatersolutions.com> --- Created attachment 125359 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125359&action=edit Bug 29121: Regression tests This patch adds regression tests for broken ->install and ->upgrade methods on plugins. It adds two dummie plugins named BrokenInstall and BrokenUpgrade, for convenience. Tests are added to catch the warnings that will be logged when trying to load this plugins on different scenarios. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
DELETE FROM plugin_data; (to make sure there's no __INSTALLED__ entry, do on a safe to delete DB).
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #7 from Kyle M Hall <kyle@bywatersolutions.com> --- Created attachment 125360 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125360&action=edit Bug 29121: Catch errors in ->install and ->upgrade calls on plugins This patch adds a try/catch block when instantiating plugins. Calling ->new on a plugin eventually triggers a call to ->install (this has always been like this since bug 7804). If the ->install method is somehow borked, then the process dies. We need to prevent that, and report back some error took place. That's what this patch does. The same happens to the ->upgrade. To test: 1. Install any plugin you like 2. Restart plack (just in case) => SUCCESS: All good 3. Manually change its install method to: sub install { die "plugin, die!"; } 4. Run: $ koha-mysql kohadev 5. Point your browser to the plugins-home.pl page => FAIL: Boom 6. Apply up to the regression tests 7. Run: $ kshell k$ prove t/db_dependent/Koha/Plugins/Plugins.t \ t/Koha/Exceptions.t => FAIL: Tests fail! 8. Apply this patch 9. Repeat 2 => SUCCESS: Tests pass! 10. Run: $ restart_all 11. Repeat 5 => SUCCESS: The page is not broken 12. Sign off :-D Note: I used $ kshell k$ perl misc/devel/install_plugins.pl to test as well. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #8 from Kyle M Hall <kyle@bywatersolutions.com> --- Created attachment 125361 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125361&action=edit Bug 29121: Add POD to plugins Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125358|0 |1 is obsolete| | --- Comment #9 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Created attachment 125477 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125477&action=edit Bug 29121: Add new plugin exceptions This patch introduces two new exceptions: - Koha::Exceptions::Plugin::InstallDied - Koha::Exceptions::Plugin::UpgradeDied Tests are added for their stringification output. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125359|0 |1 is obsolete| | --- Comment #10 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Created attachment 125478 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125478&action=edit Bug 29121: Regression tests This patch adds regression tests for broken ->install and ->upgrade methods on plugins. It adds two dummie plugins named BrokenInstall and BrokenUpgrade, for convenience. Tests are added to catch the warnings that will be logged when trying to load this plugins on different scenarios. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> -- You are receiving this mail because: You are watching all bug changes.
DELETE FROM plugin_data; (to make sure there's no __INSTALLED__ entry, do on a safe to delete DB).
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125360|0 |1 is obsolete| | --- Comment #11 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Created attachment 125479 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125479&action=edit Bug 29121: Catch errors in ->install and ->upgrade calls on plugins This patch adds a try/catch block when instantiating plugins. Calling ->new on a plugin eventually triggers a call to ->install (this has always been like this since bug 7804). If the ->install method is somehow borked, then the process dies. We need to prevent that, and report back some error took place. That's what this patch does. The same happens to the ->upgrade. To test: 1. Install any plugin you like 2. Restart plack (just in case) => SUCCESS: All good 3. Manually change its install method to: sub install { die "plugin, die!"; } 4. Run: $ koha-mysql kohadev 5. Point your browser to the plugins-home.pl page => FAIL: Boom 6. Apply up to the regression tests 7. Run: $ kshell k$ prove t/db_dependent/Koha/Plugins/Plugins.t \ t/Koha/Exceptions.t => FAIL: Tests fail! 8. Apply this patch 9. Repeat 2 => SUCCESS: Tests pass! 10. Run: $ restart_all 11. Repeat 5 => SUCCESS: The page is not broken 12. Sign off :-D Note: I used $ kshell k$ perl misc/devel/install_plugins.pl to test as well. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #125361|0 |1 is obsolete| | --- Comment #12 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Created attachment 125480 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=125480&action=edit Bug 29121: Add POD to plugins Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Signed Off |Passed QA --- Comment #13 from Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Works as expected, code is clear and passes qa scripts Passing QA -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Martin Renvoize <martin.renvoize@ptfs-europe.com> changed: What |Removed |Added ---------------------------------------------------------------------------- QA Contact|testopia@bugs.koha-communit |martin.renvoize@ptfs-europe |y.org |.com -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 Jonathan Druart <jonathan.druart+koha@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|Passed QA |Pushed to master Version(s)| |21.11.00 released in| | -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #14 from Jonathan Druart <jonathan.druart+koha@gmail.com> --- Pushed to master for 21.11, thanks to everybody involved! -- You are receiving this mail because: You are watching all bug changes.
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29121 --- Comment #15 from Kyle M Hall <kyle@bywatersolutions.com> --- Can you please provide a rebased patch set for 21.05.x? Thanks! -- You are receiving this mail because: You are watching all bug changes.
participants (1)
-
bugzilla-daemon@bugs.koha-community.org