[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