> Date: Wed, 14 Mar 2012 19:29:43 -0700
> From: jplev...@acm.org
> 
> On Wed, Mar 14, 2012 at 8:22 AM, Alan M. Carroll <
> a...@network-geographics.com> wrote:
> 
> >
> > > There is, however, one situation where this simple and safe order of
> > events
> > > is not followed.  That is connection sharing to origin servers.  Here the
> > > situations starts the same, but when the client is done with the
> > connection
> > > it does not issue a do_io_close(), and this is where the problems can
> > begin.
> >
> > That's not my interpretation of the crashes. We tried various settings for
> > connection sharing to no observed effect on crashing type or frequency. In
> > fact all of the configurations I use for testing have connection sharing
> > disabled.
> >
> 
> "As far as I can tell the problem arises when the VCs in a
> HttpServerSession are split across two threads"
> 
> This can only occur when there is some connection sharing or if someone has
> introduced a thread switch in some other processor which triggers the OS
> connection.  AFAIK the OS connection is initiated on the thread which has
> the client connection and thus, without connection sharing, they should be
> on the same thread.
> 
> 
> >
> > One might ask, why is HttpServerSession split across threads like that? I
> > have no idea. But it seems to happen much more with forward proxy (note: I
> > have only indirect evidence for that).
> >
> 
> I question I have as well.   This should not be the case and is going to
> cause performance problems.  That said, it should not result in a crash.
> 

Might be talking nonsense here, but I'm pretty sure this can also happen if a 
plugin uses TSContSched and reenables from the scheduled continuation -- 
something like:
1) Request comes in and hits the READ_REQ_HDRS
2) Plugin does not reenable, set a scheduled continuation
3) Scheduled continuation activates on another thread, and reenables the 
transaction.

    --Uri
                                          

Reply via email to