[wp-trac] [WordPress Trac] #44458: Catch WSODs and provide a means for recovery for end users
WordPress Trac
noreply at wordpress.org
Mon Oct 8 11:46:26 UTC 2018
#44458: Catch WSODs and provide a means for recovery for end users
-------------------------------------------------+-------------------------
Reporter: schlessera | Owner: (none)
Type: task (blessed) | Status: new
Priority: normal | Milestone: 5.1
Component: Bootstrap/Load | Version:
Severity: normal | Resolution:
Keywords: has-patch needs-unit-tests needs- | Focuses: multisite
testing |
-------------------------------------------------+-------------------------
Changes (by flixos90):
* milestone: 5.0 => 5.1
Comment:
[attachment:"44458.9.diff"] implements the aforementioned improvements:
* Site administrators can always resume plugins, even in a multisite.
* Site administrators can resume network-active plugins for their own
site.
* Network administrators see information in the table if a plugin has been
paused for at least 1 site in the network.
* Network administrators can network-resume plugins that are paused on at
least 1 site in the network.
* Introduce a `WP_Paused_Extensions_Storage` class that contains the API
for storing extension errors and takes care of using site metadata on
multisite (instead of an option). Options are now independent
(`paused_plugins` and `paused_themes`). The two class instances can be
retrieved via `wp_paused_plugins()` and `wp_paused_themes()` respectively.
* Move related functions into a new `error-protection.php` file.
* Do not handle MU plugins.
* Fix a couple minor bugs.
* Adjust version numbers because this is now part of 5.1.
Testing for these changes is much appreciated. For more details, I
recommend reviewing the code at https://github.com/wp-core-php/wordpress-
develop/pull/3.
With these changes, the patch introduces its first multisite-specific
features: Network administrators can now see whether a plugin has caused
errors on at least one site in the network. They can also network-resume a
plugin that has caused errors somewhere, essentially force-resuming it for
all sites. If a site later detects that there are still issues, it will
once again be paused on that very site.
Note that, although plugins can be "network-resumed", plugins are still
only paused per site, and that is intended.
At the moment, the network administrator can see an information that a
plugin has caused a problem on x sites. If the main site is also affected,
they also see which error caused it for that site. We should think about
how we can improve this, for example in terms of:
* When a plugin causes an error on another site but the main site, the
admin should at least still see one of the errors (especially because
often times they will be the same for all sites).
* We need to keep in mind though, that it's likely not a great idea
showing all errors because there might be a large number of sites.
* We need to think about a mechanism for notifying a network administrator
about such errors. At the moment, they will only "randomly" notice it by
accessing the Network Plugins screen.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/44458#comment:37>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list