You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Eric Covener <co...@gmail.com> on 2008/09/02 03:29:25 UTC

Re: svn commit: r684351 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_http.c modules/proxy/proxy_util.c

On Sat, Aug 9, 2008 at 5:33 PM,  <rp...@apache.org> wrote:
>
> +    /*
> +     * In the case that we are handling a reverse proxy connection and this
> +     * is not a request that is coming over an already kept alive connection
> +     * with the client, do NOT reuse the connection to the backend, because
> +     * we cannot forward a failure to the client in this case as the client
> +     * does NOT expects this in this situation.
> +     * Yes, this creates a performance penalty.
> +     */
> +    if ((r->proxyreq == PROXYREQ_REVERSE) && (!c->keepalives)
> +        && (apr_table_get(r->subprocess_env, "proxy-initial-not-pooled"))) {
> +        backend->close = 1;
> +    }
> +

Reviewing backport at a high level, am I following correctly?
"forward a failure" here is closing the TCP connection to the client
in response to a presumed keepalive timeout (or crash) at the origin
server, and the browser doesn't go into the same recovery if we do
this on the initial request.

-- 
Eric Covener
covener@gmail.com

Re: svn commit: r684351 - in /httpd/httpd/trunk: CHANGES modules/proxy/mod_proxy_http.c modules/proxy/proxy_util.c

Posted by Ruediger Pluem <rp...@apache.org>.

On 09/02/2008 03:29 AM, Eric Covener wrote:
> On Sat, Aug 9, 2008 at 5:33 PM,  <rp...@apache.org> wrote:
>> +    /*
>> +     * In the case that we are handling a reverse proxy connection and this
>> +     * is not a request that is coming over an already kept alive connection
>> +     * with the client, do NOT reuse the connection to the backend, because
>> +     * we cannot forward a failure to the client in this case as the client
>> +     * does NOT expects this in this situation.
>> +     * Yes, this creates a performance penalty.
>> +     */
>> +    if ((r->proxyreq == PROXYREQ_REVERSE) && (!c->keepalives)
>> +        && (apr_table_get(r->subprocess_env, "proxy-initial-not-pooled"))) {
>> +        backend->close = 1;
>> +    }
>> +
> 
> Reviewing backport at a high level, am I following correctly?
> "forward a failure" here is closing the TCP connection to the client
> in response to a presumed keepalive timeout (or crash) at the origin
> server, and the browser doesn't go into the same recovery if we do
> this on the initial request.
> 

Correct.

Regards

RĂ¼diger