[wp-trac] [WordPress Trac] #11744: the global-posts bucket potentially contains garbage

WordPress Trac wp-trac at lists.automattic.com
Wed Jan 6 14:55:48 UTC 2010


#11744: the global-posts bucket potentially contains garbage
-------------------------------+--------------------------------------------
 Reporter:  Denis-de-Bernardy  |       Owner:  ryan     
     Type:  defect (bug)       |      Status:  new      
 Priority:  normal             |   Milestone:  3.0      
Component:  Cache              |     Version:  3.0      
 Severity:  normal             |    Keywords:  has-patch
-------------------------------+--------------------------------------------
 the newly introduced get_blog_post() function potentially contains garbage
 and is insufficiently cleaned up. it uses the following logic:

 {{{
 wp_cache_get("$blog_id-$post_id", "global-posts");
 if false then
   select post regardless of status (can be trashed, draft, pending...)
   wp_cache_add() the thing in memcache
 }}}

 the issue is the cleanup:

 {{{
 function clear_global_post_cache( $post_id ) {
         global $wpdb;

         wp_cache_delete( $wpdb->blogid . '-' . $post_id, 'global-posts' );
 }
 add_action( 'publish_post', 'clear_global_post_cache' );
 add_action( 'delete_post', 'clear_global_post_cache' );
 }}}

 if a published post gets turned back to pending status, for instance, the
 global-posts bucket will still contain the cached post. we should use the
 save_post hook instead.

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


More information about the wp-trac mailing list