[wp-trac] [WordPress Trac] #27669: Stale `db_version` value after update with external object cache
WordPress Trac
noreply at wordpress.org
Tue Apr 28 05:24:57 UTC 2015
#27669: Stale `db_version` value after update with external object cache
-----------------------------+-----------------------------
Reporter: johnbillion | Owner:
Type: defect (bug) | Status: reopened
Priority: normal | Milestone: Future Release
Component: Upgrade/Install | Version: 3.9
Severity: critical | Resolution:
Keywords: | Focuses:
-----------------------------+-----------------------------
Comment (by rmccue):
I suspect this could be #31245. @willmot mentioned we haven't hit it on
Human Made stuff, and I'd guess that's because we're running
[https://core.trac.wordpress.org/ticket/31245#comment:7 a modified
version] of the Memcache plugin.
It's somewhat trivial to cause:
* WP runs a HTTP request to itself to update the DB on autoupgrades.
* A plugin adds a hook to `shutdown` or similar which calls
`update_option` or similar
* HTTP request closes (`fastcgi_finish_request` or similar in the shutdown
hook), and WP flushes the cache
* The race condition causes the plugin to call `update_option`, which
overwrites `alloptions`
The key to causing it here is `fastcgi_finish_request` though, which
causes the process to continue running after the request has finished.
There's other ways to cause it though, things like TLC Transients can also
cause it by spawning a grandchild process that does the same.
Occam's Razor indicates that this might not be the case, as it's somewhat
complex to cause, ''but'' the fact we've not hit it on HM stuff, and that
we already have `wp_cache_delete( 'alloptions', 'options' )` to mitigate
#31245 is evidence in favour of this theory.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/27669#comment:12>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list