Ian Holsman wrote: > I've had a better look into this problem and I think I figured what is > causing it. > > We store state info in the connection record which holds the connection > handle and other stuff.
This is correct - it's done so keepalive can work.
> The problem seems to occur when we request a page which has virtual
> includes which request another page on the same server.
>
> what happens is the 2nd request grabs the connection (which is still
> midway through the 1st request) and issues another request on the same
> connection.
>
> now this may be fine for things which understand pipelining. but
> I think it is screwing up 1.0 servers.
Even with pipelining it won't work - we're in the middle of a request
trying to make a new request, not at the end of the request :(
> the only way I can think of getting around this is to store state at the
> request level instead of the connection level.
This will break keepalives.
Rather fix it so that when proxy tries to write state to the connection
record, it checks first whether a state already exists. If a state does
exist then we have triggered our bug - get proxy to *not* write the
state and just serve a "Connection: close" on the subrequest.
The consequences of this are that keepalives cannot be supported for
subrequests within requests, however considering that practically a
page-within-a-page cannot logically follow the original page request
this should be fine.
Regards,
Graham
--
-----------------------------------------
[EMAIL PROTECTED] "There's a moon
over Bourbon Street
tonight..."
smime.p7s
Description: S/MIME Cryptographic Signature
