Despite two release candidates and several weeks of availability for testing, a bug sneaked into WordPress 2.0.6 that affects the serving of 304 Not Modified feeds. It’s actually related to the Server 500 error issue that 2.0.5 had (and 2.0.6 fixes)… it just affects a different set of people. The solution to one problem caused the other. One symptom of the problem is the following error message from FeedBurner as it tries to request a WordPress 2.0.6 feed:
Your server disconnected us before sending the full source feed content. If your blogging platform is TextPattern, this is a known bug, and a fix can be found here: http://forum.textpattern.com/viewtopic.php?id=11247
Note that this doesn’t prevent FeedBurner (or anyone else) from fetching your feed 100% of the time. The issue only arises with certain RSS consumers and only on certain servers, and only when the feed attempts to return a 304 Not Modified header. So with FeedBurner, for instance, one fetch attempt may trigger it, but the next will be fine.
For 2.0.6 users who want a workaround, go ahead and download this patched /wp-includes/functions.php file (click the big “download” link at the top… don’t try to copy-paste the text).
For CLI-savvy users, here is the patch (unified diff).
cd to your WordPress directory, place the diff file there, and apply the patch with
patch -p0 < functions.php.diff
For people who aren’t CLI-savvy but don’t mind editing PHP files, open
wp-includes/functions.php and comment out lines 2231, 2233 and 2234 by appending two forward slashes to those lines. Leave line 2232 alone.
WordPress 2.0.7 was already planned, and this fix (if this is indeed the final fix we settle upon) will be in that, as well as in WordPress 2.1 I don’t know when 2.0.7 will be released, or if it will be released before and after 2.1 My non-Automattic-sanctioned suggestion is for you to download the modified
functions.php file here and use that to hold you over until a new version is released. Please do not stay on 2.0.5 because of this issue. 2.0.6 contains several security fixes that you don’t want to miss.
Also: if you promise to help test future release candidates, feel free to give me flak for missing this bug. This was clearly an issue of not having enough eyes, so if taking flak buys me more eyes, that price sounds good to me.