httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <ylavic....@gmail.com>
Subject mod_proxy_http recycles closed connections (EOS by close)
Date Thu, 30 Jan 2014 01:15:42 GMT
Following Jeff's advice to create a dedicated thread, I'm forwarding
my message sent to the wrong place (clearly)...

On the mod_proxy_http side, when the backend closes the connection (as
EOS), the socket is recycled w/o being closed.

The following patch avoids this, freeing the resource quickly and
saving the is_socket_connected() call later when re-acquired.
Since it is quite symetric to r1523387 (though all platforms this
one), maybe it could be applied/backported too...

Note that without r1538776 being backported to 2.4 (and 2.2),
mod_proxy_http still handle truncated responses like a normal close
(APR_EOF) and reach this code (PR 55475), no error detected/logged nor
forwarded to the output filters,.

Index: modules/proxy/mod_proxy_http.c
===================================================================
--- modules/proxy/mod_proxy_http.c    (revision 1562607)
+++ modules/proxy/mod_proxy_http.c    (working copy)
@@ -1680,6 +1680,7 @@ int ap_proxy_http_process_response(apr_pool_t * p,
                         continue;
                     }
                     else if (rv == APR_EOF) {
+                        backend->close = 1;
                         break;
                     }
                     else if (rv != APR_SUCCESS) {
[END]

Regards,
Yann.

Mime
View raw message