﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
15548	Cache inconsistencies between get_option and get_blog_option	mwidmann		"When an option is updated for a blog {{{update_option}}} calls {{{wp_cache_set}}} to update the cache for that option.

The problem comes when the option is accessed through {{{get_blog_option}}} from another site. There the cache never gets updated (unless the caching - in our case memcached - is recycled.

Steps to reproduce, I'm updating the {{{admin_email}}}, so be sure to change it back afterwards: 

{{{
echo ""fetching using get_blog_option<br>"";
echo get_blog_option( 6, 'admin_email' );

switch_to_blog( 6 );
echo ""<br>fetching using get_option before update<br>"";
echo get_option( 'admin_email' );
echo ""<br>updating...<br>"";
update_option( 'admin_email', 'new-value@email.com' );
echo ""<br>fetching using get_option after update<br>"";
echo get_option( 'admin_email' );
restore_current_blog();

echo ""<br>fetching using get_blog_option after uptdate<br>"";
echo get_blog_option( 6, 'admin_email' );
}}}

The output will look like something similar to this:

{{{
fetching using get_blog_option
old-value@email.com
fetching using get_option before update
new-value@email.com
updating...

fetching using get_option after update
new-value@email.com
fetching using get_blog_option after uptdate
old-value@email.com
}}}

If no caching is enabled than - of  course - this issue doesn't come up as the value is always fetched form the database.

The best solution most probably would be to modify the either hook into {{{update_option}}} and {{{delete_option}}} actions from {{{ms-blogs.php}}} and then update or delete the value based on the given option."	defect (bug)	closed	normal	3.5	Multisite	3.0.1	normal	fixed	caching memcache has-patch	moha@… aaron@…
