[wp-trac] [WordPress Trac] #11912: gzuncompress errors in WP_Http_Encoding::decompress()
WordPress Trac
wp-trac at lists.automattic.com
Fri Jan 15 17:14:56 UTC 2010
#11912: gzuncompress errors in WP_Http_Encoding::decompress()
--------------------------+-------------------------------------------------
Reporter: rowanbeentje | Owner: dd32
Type: defect (bug) | Status: new
Priority: normal | Milestone: Unassigned
Component: HTTP | Version: 2.9.1
Severity: normal | Keywords: gzuncompress decompress http cron
--------------------------+-------------------------------------------------
Hi there,
We have a custom PHP error handler which catches errors (both
trigger_error'd and fatal) and files them in a tracking system; over the
last few weeks we've had quite a few occurrences of "gzuncompress() : data
error" thrown in WP_Http_Encoding::decompress().
When I first looked into this I found #11600, and thought that was the
cause; as a result I took the http.php file from
http://core.trac.wordpress.org/export/11450/trunk/wp-includes/http.php and
dropped that in over the 2.9.1 version. Unfortunately that hasn't stopped
the occurrences!
Fortunately our error handler captures a backtrace and some context; as a
result, I can see that WP_Http_Encoding::decompress() is called with one
argument: false. gzinflate simply returns false when it is passed false,
but gzuncompress throws an E_WARNING.
I'm not entirely sure why decompress() is being passed false - my
suspicion is that the curl request is timing out, but that decompress is
called on the result anyway? I haven't followed the logic through
completely…
Here's an abbreviated backtrace; let me know if you need more detail.
1. blog/wp-cron.php:55
do_action_ref_array('do_pings', array());
2. blog/wp-includes/plugin.php:414
call_user_func_array('do_all_pings', array());
3. do_all_pings(array())
4. blog/wp-includes/comment.php:1543
do_enclose(<snip>, <snip>)
5. blog/wp-includes/functions.php:1163
wp_get_http_headers(<snip url>)
6. blog/wp-includes/functions.php:1233
wp_remote_head(<snip url>)
7. blog/wp-includes/http.php:1968
WP_Http::head(<snip url>, array())
8. blog/wp-includes/http.php:366
WP_Http_Curl::request(<snip url>, array(method:head, timeout:5,
redirection:5, httpversion:1.0, etc etc))
9. blog/wp-includes/http.php:1354
WP_Http_Encoding::decompress(false)
10. blog/wp-includes/http.php:1792
gzuncompress(false)
--
Ticket URL: <http://core.trac.wordpress.org/ticket/11912>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list