Hide Forgot
Description of problem: If the proxy's auth token is expired the next request to it will fail with SysCallError: (-1, 'Unexpected EOF') in the httpd/error_log. Version-Release number of selected component (if applicable): 2.0 How reproducible: always Steps to Reproduce: 1. have an expired auth token for the proxy in /var/cache/rhn/proxy_auth, usually by not making any requests through the proxy for a few days 2. attempt to do something through the proxy, say register a system Actual results: attempt will fail, error will be in log Expected results: attempt should succeed Additional info: This appears to be related to 62bfef31c610c85c2e2adb06781b17c21cdf7dff. Instead of reading request content into a variable and referencing the variable, we now pass the content directly to the request writer (and actually it looks like later modifications have read it into a variable anyway. Does that negate the point of this update?). The problem is that the content is contained in a buffered reader, so reading it once destroys the content for future reads. In this particular case (when the auth tokens are expired) we read it the first time we sent the request upstream. Upstream comes back with a "you need to update your auth token" message, which we successfully do, and then we try to send the request again. But the second time through there is nothing left to read and the request fails. The relevant code is in the rhnShared.py file, in the stanza following the "# Send the body too if there is a body" comment. We may have to just revert the commit mentioned above.
This issue is also reported in bug 1201380, which has additional discussion and a fix already in-place. Closing as a duplicate. *** This bug has been marked as a duplicate of bug 1201380 ***
This BZ closed some time during 2.5, 2.6 or 2.7. Adding to 2.7 tracking bug.