FeedWordPress 2011.0512: better performance, better troubleshooting, and no more “There may be a bug” white-screens-of-death

2011.0512 is now available for download.(http://downloads.wordpress.org/plugin/feedwordpress.2011.0512.zip) Hooray!

This announcement will actually cover details for a couple of maintenance releases that I’ve pushed out since [1](http://feedwordpress.radgeek.com/blogs/radgeek/2010/09/05/feedwordpress-20100905-bug-fixed-categories-and-tags-now-correctly-assigned). This is mainly a maintenance release, with a number of small tweaks around the edges, most of them for better internal performance or organization, but — if you’re upgrading from 2010.0905 — it includes one important, major performance improvement. And it includes a number of changes which should make it much quicker and much less painful to troubleshoot if you encounter any problems with your feeds. Besides having brought the ChangeLog up to date with the most recent version of the code, here are some of the main things that have changed:

### Changes since Version 2010.0905 ###

* **BUGFIX: AVOID DUPLICATE POSTS WHEN GUIDS ARE TOO LONG:** When feeds included
exceptionally long GUIDs, FeedWordPress could occasionally get into
a situation where posts with the long GUIDs would be duplicated over
and over again with each update (because FWP failed to store the full
GUID, due to length constraints in the relevant database tables).
Without the full GUID, FWP would not know that the post had already
been syndicated once. This bug has been fixed, and should no longer
produce duplicate posts.

* **HTTP TIMEOUT SETTING:** If you are frequently running into timeout
problems with one or more of the feeds you syndicate, FWP now allows you
to adjust the timeout for HTTP requests using a global or feed-by-feed
setting.

* **HTTP GET PARAMETERS:** You can now temporarily or permanently add HTTP
GET parameters to a subscription using an interface in Syndication –>
Feeds & Updates. This is especially helpful for making quick, short-term
changes to a subscription (for example, to pull in all the previous
items from a web service, before settling down to pulling in only newly
updated items). You can also use it to include private parameters with values that you do not wish to make publicly visible when a syndicated post displays the URL of its source feed — such as API keys or passwords.

* **DIAGNOSTICS SYSTEM:** Added several new diagnostics which are useful in
troubleshooting, and established a framework for add-on modules to hook
in with their own diagnostic messages.

* **UI:** Adjusted some internal coding, which should allow for settings
pages and add-ons to properly display multiple category pickers on a
single settings page.

* **PHP4 COMPATIBILITY TWEAKS:** This version makes some tweaks to the handling
of object references which should improve compatibility with older
versions of PHP. (Although, I should note, web hosts that still force
you to run under PHP 4 — in 2011! — are *bad web hosts*.)

* **IMPROVED PERFORMANCE:** This version eliminates a *major* performance drag
that shows up on sites with large numbers of users (due to some poor
decisions about where to place a user query, which caused the user table
to be scanned frequently when it did not need to be). If you experienced
serious problems with CPU load or slow database performance under
2010.0905, which kicked in immediately when FWP was loaded and tended
to disappear immediately if FWP was de-activated, it is likely that
upgrading away from 2010.0905 to the most recent version will resolve
your problem.

### Changes since Version 2011.0211.2 ###

* **DIAGNOSTICS IMPROVEMENTS; “THERE MAY BE A BUG IN FEEDWORDPRESS” CRITICAL ERROR NOTICES ELIMINATED:** This version includes some major improvements
to the Syndication –> Diagnostics section, which should aid in
troubleshooting difficulties with items failing to be imported, posts
failing to be properly inserted into the database, or updates failing to
be recorded. If you have been encountering critical error / bug notices
with a white screen and the message “THERE MAY BE A BUG IN
FEEDWORDPRESS,” followed by an extraordinarily long dump of mostly
incomprehensible diagnostic information, you’ll be happy to know that
the condition causing these notices has been eliminated. In the few
cases where errors may still crop up with database insertions,
FeedWordPress will now produce a significantly more manageable and more
useful diagnostic message.

* **BUGFIX: NEW POSTS FAILING TO APPEAR IN A CLEANLY-INSTALLED FEEDWORDPRESS SYSTEM.** If you encountered a recurring problem with FeedWordPress
failing to import new posts, after a clean install of FeedWordPress
(i.e., not an upgrade from a previous version), this problem may have
been the result of a bug with author-handling which has now been fixed
in the 2011.0512 release. (If the problem does *not* go away with the
upgrade, this version also includes significant improvements to the
Diagnostics system, which will help track down what *is* causing it
in your particular case.)

* **PERFORMANCE:** New handling of update hashes allows FeedWordPress to avoid
a certain kind of infinite loop, caused when two more more different
syndicated feeds each carried a version of the same item (for example,
because it appeared on two different aggregator feeds that you’re
syndicating). In previous versions, when this kind of loop cropped up,
syndicated posts could pile up an indefinitely large number of revisions
— each revision alternating between the version from each of the two
feeds where it appeared — which would, over time, dramatically inflate
the size of the database, and kill the performance of queries on the
post table. This issue has been resolved: revisions of the post that
have been syndicated once will not be re-syndicated over and over again.

* **AUTHOR LISTS:** Lists of authors presented on the Author settings pages
should now be easier to scan through, with author names arranged in
alphabetical order.

* **FEED ITEM DATE PARSING:** More tweaks to make date-time handling more
resilient when feeds provide broken or weird values for the timestamps
on syndicated items. FWP will now attempt to work around unparseable
timezone values.

* **AUTHOR MATCHING:** Now attempts to match author names against the WP login
name in addition to display_name; when creating user record, also fills
in some best-guess values for nickname, firstname and lastname. Also
properly picks up Atom 1.0 author/uri data from feed.

* **COMPATIBILITY:** FeedWordPress has been successfully tested for
compatibility with recent releases of WordPress, up to version 3.1.2.

### As always… ###

As always, if you have any issues with the release, or any questions I can help answer, or if there is anything that you would like to see included in a future release, please use the comments form or me a line(http://feedwordpress.radgeek.com/contact) to let me know about it. If you have an issue to report, please be sure to tell me what version of FeedWordPress you’re using, what version of WordPress you’re using it with, which web browser you are using to view the FeedWordPress user interface, and try to tell me, as clearly as possible, (1) what you were trying to do, (2) what the circumstances were, (3) what you expected to see, and (4) what you ended up seeing instead.

Please remember that your generous gifts to project tip jar(http://feedwordpress.radgeek.com/donate) make ongoing development and support for FeedWordPress possible.

Now get on out there, and enjoy!(http://downloads.wordpress.org/plugin/feedwordpress.2011.0512.zip)

FeedWordPress Development Version — Revision 382491: Prevent update-conflict loops from piling up revisions — keep old update …

I recently committed the following change to the Development Version of FeedWordPress:

Prevent update-conflict loops from piling up revisions -- keep old update hashes in addition to most recent.

This change will be part of the next public release of FeedWordPress. Interested? Curious? You can check out the details at the WordPress plugin repository ...

Posted in Log