Summary: | mod_proxy_fcgi does not honnor Timeout / ProxyTimeout | ||
---|---|---|---|
Product: | Apache httpd-2 | Reporter: | bruno.canet |
Component: | mod_proxy_fcgi | Assignee: | Apache HTTPD Bugs Mailing List <bugs> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | apacheorg, rich |
Priority: | P2 | ||
Version: | 2.4.6 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Attachments: |
proposed patch
proposed patch v2 proposed patch v3 |
Description
bruno.canet
2013-05-15 06:47:07 UTC
we confirm this behavior with: mod_proxy_fcgi mod_proxy apache event mpm on latest stable apache 2.4.6 we are using: (we tried both inside and outside virtualhost: ) <Proxy fcgi://socket=%2fdev%2fshm%2ffpm-php.sock> ProxySet timeout=3600 ProxySet connectiontimeout=3600 </Proxy> ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://socket=%2fdev%2fshm%2ffpm-php.sock/mobilnet.sk/$1 timeout=3600 connectiontimeout=3600 OR RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^/?(.*\.php)$ fcgi://socket=\%2fdev\%2fshm\%2ffpm-php.sock/path/$1 [P,L] but none of them accepts the timeout: [proxy_fcgi:error] (70007)The timeout specified has expired: [...] AH01075: Error dispatching request to: Created attachment 30828 [details]
proposed patch
This patch removes hardcoded 30 second timeout from mod_proxy_fcgi and replaces it with ProxyTimeout/Timeout.
Created attachment 30829 [details]
proposed patch v2
Better patch respecting previous "conn->worker->s->timeout" timeout if set.
The fact that you were not able to set "timeout=300" is caused by PR 43513. Created attachment 30833 [details]
proposed patch v3
Even better patch. Now uses apr_socket_timeout_get.
Fixed in 2.4.8: *) mod_proxy_fcgi: Use apr_socket_timeout_get instead of hard-coded 30 seconds timeout. [Jan Kaluza] |