From c78bd6e9d95ae5037f76fbefb8c60ba5d0e04d0d Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Thu, 21 Jan 2016 16:52:20 +0000 Subject: [PATCH] Merge r1724857 from trunk: *) mod_proxy_fcgi: Suppress HTTP error 503 and message 01075, "Error dispatching request", when the cause appears to be the client closing the connection. PR58118. Submitted By: Tobias Adolph Committed By: covener Submitted by: covener Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1726019 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 6 ++++++ STATUS | 8 -------- modules/proxy/mod_proxy_fcgi.c | 10 ++++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGES b/CHANGES index 7fc42f171e2..7e5a885019e 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,12 @@ Changes with Apache 2.4.19 + + *) mod_proxy_fcgi: Suppress HTTP error 503 and message 01075, + "Error dispatching request", when the cause appears to be + due to the client closing the connection. + PR58118. [Tobias Adolph ] + *) mod_cgid: Message AH02550, failure to flush a response to the client, is now logged at TRACE1 level to match the underlying core output filter severity. [Eric Covener] diff --git a/STATUS b/STATUS index c0c96ec8f02..ff97019eed5 100644 --- a/STATUS +++ b/STATUS @@ -112,14 +112,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) mod_proxy_fcgi: Suppress HTTP error 503 and message 01075, - "Error dispatching request", when the cause appears to be - the client closing the connection. PR58118 - trunk patch: http://svn.apache.org/r1724857 - 2.4.x patch: trunk works - +1 covener, jim, rjung - - PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c index ba813ed5002..9068e6e6305 100644 --- a/modules/proxy/mod_proxy_fcgi.c +++ b/modules/proxy/mod_proxy_fcgi.c @@ -833,6 +833,16 @@ static int fcgi_do_request(apr_pool_t *p, request_rec *r, rv = dispatch(conn, conf, r, temp_pool, request_id, &err, &bad_request, &has_responded); if (rv != APR_SUCCESS) { + /* If the client aborted the connection during retrieval or (partially) + * sending the response, dont't return a HTTP_SERVICE_UNAVAILABLE, since + * this is not a backend problem. */ + if (r->connection->aborted) { + ap_log_rerror(APLOG_MARK, APLOG_TRACE1, rv, r, + "The client aborted the connection."); + conn->close = 1; + return OK; + } + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01075) "Error dispatching request to %s: %s%s%s", server_portstr, -- 2.47.2