Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am trying to understand what is happening with the following message in our Apache 2.2 error_log:

Wed May 18 21:03:29 2011] [error] [client 172.20.10.10] (70007)The timeout specified has expired: proxy: error reading status line from remote server super-load1-ga.test.com, referer: https://tester2.test.com/boom/ga/inside.asp

We are running Apache 2.2 with mod_proxy. Is this Apache timing out the request related to its 5 min TimeOut value in the httpd.conf? (Meaning it does not recieve a response from the remote server in 5 min.) Or is this simply a response from the remote server saying that it cannot handle the connection?

Apache quickly runs out of its MaxClients around the time I see this error.

Quick example of Proxy entry:

ProxyPass /boom/ga https://super-load1-ga.test.com
ProxyPassReverse /boom/ga https://super-load1-ga.test.com
share|improve this question

3 Answers 3

To answer your question, yes, Apache2 httpd in proxy mode does log that error message when Apache2 httpd times out. If the server connected to the Apache2 httpd in proxy mode was the cause there would be a different message.

The message has multiple parts: The timeout specified has expired is the text equivalent of the APR_TIMEUP error code, see:

srclib/apr/misc/unix/errorcodes.c

case APR_TIMEUP:
    return "The timeout specified has expired";

Then proxy: error reading status line from remote server super-load1-ga.test.com is in

modules/proxy/mod_proxy_http.c

If you crank up your log level to APLOG_DEBUG you should see an additional message: proxy: read timeout too.

share|improve this answer

You increase the timeout in the ProxyPass directive:

ProxyPass /boom/ga https://super-load1-ga.test.com connectiontimeout=300 timeout=300

Timeout values are in seconds.

share|improve this answer
1  
If you're not already defining the ProxyPass timeout argument, your global Timeout value will be used. See httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxytimeout and httpd.apache.org/docs/2.2/mod/core.html#timeout –  sync May 2 at 4:36

It sounds like your server at htts://super-load1-ga.test.com is taking too long to respond.

In that scenario, if it just sits there then the Apache process is going to wait for it. That process is essentially blocked, i.e. cannot do anything else. If you don't time out quick enough, you're going to run out of Apache processes and hit MaxClients which seems too all make sense.

You should have logs on the super-load1-ga.test.com site to see how long requests are taking, they must be taking an age.

You could potentially shorten the timeout on the ProxyPass connection

http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers

share|improve this answer
    
Thanks for the great response Phil. So you think this is hitting the main httpd.conf TimeOut value of 5 min and Apache is timing out the session? Because I don't have a proxy specific timeout set it would default. On the Proxy timeout suggestion do you think I should use the ProxyTimeout variable or the ProxySet command? (ProxySet connectiontimeout=5 timeout=30 ) –  roacha May 21 '11 at 0:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.