[wp-trac] [WordPress Trac] #18955: get_site_option caches default value when option does not exist

WordPress Trac wp-trac at lists.automattic.com
Mon Oct 17 22:20:30 UTC 2011


#18955: get_site_option caches default value when option does not exist
--------------------------+--------------------
 Reporter:  wpmuguru      |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  3.3
Component:  Multisite     |     Version:  3.2.1
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |
--------------------------+--------------------
Description changed by wpmuguru:

Old description:

> If get_site_option is passed any default value on a non-existent site
> option then a subsequent call to update_site_option will not add the site
> option. Because the site option does not exist, it does not get updated
> either. To reproduce
>
> - in the sitemeta table edit the active_sitewide_plugins meta_key to be
> active_sitewide_plugins_x
> - go to the network plugins screen and network activate any plugin
>
> You get the message that the plugin was activated, but it doesn't because
> the site option doesn't get saved.
>
> Options for fixing
>
>  1. change the get_site_option in update_site_options to not use cache
>  2. add a notsiteoption cache and cache the non-existence of the site
> option
>  3. don't cache the default value in get_site_option
>
> Option 1 is quick & easy
> Option 2 is more work but the way the blog options are handled and it
> would make things more consistent
> Option 3 is probably not the preferable solution

New description:

 If get_site_option is passed any default value on a non-existent site
 option then a subsequent call to update_site_option will not add the site
 option. Because the site option does not exist, it does not get updated
 either. To reproduce

 - in the sitemeta table edit the active_sitewide_plugins meta_key to be
 active_sitewide_plugins_x
 - go to the network plugins screen and network activate any plugin

 You get the message that the plugin was activated, but it doesn't because
 the site option doesn't get saved.

 Options for fixing

  1. change the get_site_option in update_site_options to not use cache
  2. add a notsiteoption cache and cache the non-existence of the site
 option
  3. don't cache the default value in get_site_option

 Option 1 is quick & easy
 Option 2 is more work but is the way the blog options are handled and it
 would make things more consistent
 Option 3 is probably not the preferable solution

--

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/18955#comment:7>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list