[wp-trac] [WordPress Trac] #23405: blog-details cache can get stuck with bad value

WordPress Trac noreply at wordpress.org
Wed Feb 6 11:11:20 UTC 2013


#23405: blog-details cache can get stuck with bad value
-----------------------------+--------------------------
 Reporter:  westi            |       Type:  defect (bug)
   Status:  new              |   Priority:  normal
Milestone:  Awaiting Review  |  Component:  Multisite
  Version:  3.5.1            |   Severity:  normal
 Keywords:  needs-patch      |
-----------------------------+--------------------------
 If you call '''get_blog_details''' for a blog which doesn't exist yet in
 '''wp_blogs''' then we cache a negative lookup result as '''-1''':

 https://core.trac.wordpress.org/browser/trunk/wp-includes/ms-
 blogs.php?rev=23389#L217
 '''
         if ( empty($details) ) {
                 $details = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM
 $wpdb->blogs WHERE blog_id = %d /* get_blog_details */", $blog_id ) );
                 if ( ! $details ) {
                         // Set the full cache.
                         wp_cache_set( $blog_id, -1, 'blog-details' );
                         return false;
                 }
         }
 '''

 When you then later call '''refresh_blog_details''' to clear up the cache
 for the blog_id the cached '''-1''' is passed to '''clean_blog_cache'''
 which then tries to get a blog_id from the object that was returned and
 doesn't get the right one and the cached are not deleted.

 This means that the blog ends up broken :(

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/23405>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list