httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Covener <cove...@gmail.com>
Subject Re: 2.3.15 RewriteRule P
Date Thu, 05 Jan 2012 02:25:56 GMT
On Wed, Jan 4, 2012 at 3:42 PM, Rüdiger Plüm <r.pluem@gmx.de> wrote:
>
>
> Eric Covener wrote:
>>> The different handling of conn->port and conn->hostname doesn't look
>>> right to me. Can the r->proxyreq check actually be false at this point or
is
>>> it simply redundant? And shouldn't the strcasecmp(conn->hostname,
>>> uri->hostname) check be done regardless of r->connection->keepalives?
>>
>> I did not understand the r->keepalives "optimization", maybe comparing
>> hostnames could just come last.
>>
>
> I don't think that this "optimization" is valid, because this can IMHO lead to
> a situation where a non keepalive frontend connection reuses the wrong backend
> connection. Keepalives between frontend and backend connections are decoupled.
>
> So it should be simply removed.
>

Some more fishy stuff here at least with a reusable-addr generic worker.

IIUC The generic worker can never safely copy the
proxy_worker->cp->addr down into a a proxy_conn_rec, because the
proxy_worker only stores the addr and not the hostname that went into
it.  Both the URI and the ProxyRemote could be changing under the
covers.

We would need to store the host and port in the worker too, then make
conn->addr and conn->hostname allocated out of a new subpool for the
pair, since right now these things that can flip based on URI or
ProxyRemote are allocated out of the same thing as all of
proxy_conn_rec.

Is keeping the generic worker reusable important?

Mime
View raw message