You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Igor Cicimov <ic...@gmail.com> on 2013/03/06 02:06:54 UTC

Re: [users@httpd] The timeout specified has expired: proxy: prefetch request body failed

On 28/02/2013 12:03 AM, "Jose MarĂ­a Zaragoza" <de...@gmail.com> wrote:
>
> Hello:
>
> I'm using a HTTP server  Apache/2.2.15 (Unix), as frontend and Tomcat
> 6.0.23 as backend server.
> Both of them running on the same machine ( Linux CentOS 6.3)
>
> Apache HTTP listens on 8080 and Tomcat server listens on 8081
>
> Apache HTTP server configuration is setted up like
>
> <VirtualHost *:8080>
>     ServerAdmin admin@company.es
>     DocumentRoot /var/www/html
>     ServerName www.company.es
>     ServerAlias company.es
>     ProxyPass / http://localhost:8081/
>     ProxyPassReverse / http://localhost:8081/
>     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
> \"%{User-Agent}i\"" combined
>     LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b
> \"%{Referer}i\" \"%{User-Agent}i\" proxy:%h" proxy
>     SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" client-ip-request
>
>     CustomLog /var/log/httpd/company-access_log combined
env=!client-ip-request
>     CustomLog /var/log/httpd/company-access_log proxy
env=client-ip-request
>     ErrorLog /var/log/httpd/company-error_log
>
> </VirtualHost>
>
> And Tomcat's server.xml configuration file has defined
> <!-- Define an AJP 1.3 Connector on port 8009 -->
>  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
>
>
> From time to time, I get this error message in Apache HTTP log files
>
> [Thu Feb 14 11:11:26 2013] [error] (70007)The timeout specified has
> expired: proxy: prefetch request body failed to [::1]:8081 (localhost)
> from xx.xx.xx.xx ()
>
> In the Apache HTTP server's access log , I see that
> xx.xx.xx.xx - - [14/Feb/2013:11:10:26 +0100] "POST
> /mycompany/doMyAction.dwr HTTP/1.1" 400 307
>
> (Note: Failed URL is not always the same and former failed URLs don't
> always fail )
>
> **Look at the time and response error code**:  there is an 400 HTTP
> response error code ( Bad request ) after 60 seconds ( when "The
> timeout specified has expired: proxy: prefetch request body failed"
> error  is thrown )
>
> When this error happens , Tomcat's access logs don't show any access
> message, so I guess that the request doesn't arrive to Tomcat server (
> remember , at the same machine)
>
>
> I don't know how I could to debug more . I would like to use tcpdump
> but the error occurs randomly and  I don't know what parameters to use
> with tcpdump .
>
> Is it a reported bug ? Is there any W/A ?
> What could I monitorize/watch ?
>
>
> Thanks and regards
You are probably running out of worker threads in tomcat. Tune your tomcat
properly so it can handle all the connections coming from apache.