Hi,

that's connected to PR 54973. apr_poll in mod_proxy_fcgi dispatch method uses hard-coded 30s timeout if "timeout=XX" is not set in ProxyPass directive.

Attached patch uses apr_socket_timeout_get(conn->sock) as default timeout, so it's possible to set this particular timeout globally using Timeout and ProxyTimeout directives.

Regards,
Jan Kaluza
diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c
index 875153f..4e9a325 100644
--- a/modules/proxy/mod_proxy_fcgi.c
+++ b/modules/proxy/mod_proxy_fcgi.c
@@ -569,15 +569,13 @@ static apr_status_t dispatch(proxy_conn_rec *conn, proxy_dir_conf *conf,
     ob = apr_brigade_create(r->pool, c->bucket_alloc);
 
     while (! done) {
-        apr_interval_time_t timeout = conn->worker->s->timeout;
+        apr_interval_time_t timeout;
         apr_size_t len;
         int n;
 
         /* We need SOME kind of timeout here, or virtually anything will
          * cause timeout errors. */
-        if (! conn->worker->s->timeout_set) {
-            timeout = apr_time_from_sec(30);
-        }
+        apr_socket_timeout_get(conn->sock, &timeout);
 
         rv = apr_poll(&pfd, 1, &n, timeout);
         if (rv != APR_SUCCESS) {

Reply via email to