[wp-trac] [WordPress Trac] #17557: AtomPub service sends duplicate status headers, breaking FastCGI
WordPress Trac
wp-trac at lists.automattic.com
Wed May 25 20:33:34 UTC 2011
#17557: AtomPub service sends duplicate status headers, breaking FastCGI
--------------------------+-----------------------------
Reporter: dwc | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: AtomPub | Version: 3.2
Severity: normal | Keywords:
--------------------------+-----------------------------
The AtomPub service (wp-app.php) sends duplicate Status headers when
authorization is not provided, which breaks on FastCGI setups. This is
seen when you attempt to connect to the service using e.g.
[https://github.com/calavera/Ape Ape], resulting in the following error
message in the Apache logs:
{{{
[Wed May 25 16:09:21 2011] [error] [client 10.5.62.176] FastCGI: comm with
server "/tmp/webadmin_test" aborted: error parsing headers: duplicate
header 'Status'
}}}
This results in a 500 Internal Server Error from Apache:
{{{
HTTP/1.1 500 Internal Server Error
Date: Wed, 25 May 2011 20:09:21 GMT
Server: Apache
X-Powered-By: PHP/5.2.6RC4-pl0-gentoo
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified: Wed, 25 May 2011 20:09:21 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
WWW-Authenticate: Basic realm="WordPress Atom Protocol"
Content-Length: 735
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Credentials required.</title>
</head><body>
<h1>Credentials required.</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
webmaster at ufl.edu and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
<p>Additionally, a 500 Internal Server Error
error was encountered while trying to use an ErrorDocument to handle the
request.</p>
<hr>
<address>Apache Server at test.news.ufl.edu Port 80</address>
</body></html>
}}}
Patch attached to refactor Status headers in wp-app.php to use the
{{{status_header}}} function like most of the code uses. There's also a
function that handles which I have refactored to use {{{wp_redirect}}}.
Affects all versions back to 2.9.2, including trunk.
Examples of this issue (and corresponding fixes) include:
* #2628
* http://trac.symfony-project.org/ticket/3191
--
Ticket URL: <http://core.trac.wordpress.org/ticket/17557>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list