[Zope-dev] RE: [Zope] Re: Zope hanging (poss. threads-related)

Michel Pelletier michel@digicool.com
Sat, 15 Apr 2000 15:02:15 -0700


Marcus Collins wrote:
> 
> > -----Original Message-----
> > From: Tony Rossignol [mailto:tonyr@ep.newtimes.com]
> > Sent: 14 April 2000 19:19
> > To: Marcus Collins; zope-dev@zope.org
> > Subject: Re: [Zope-dev] RE: [Zope] Re: Zope hanging (poss.
> > threads-related)
> 
> > Thank you for starting this.  I'll try to gather up information
> > I've been trying to collect here and post it in the next few days.
> 
> Thanks! Maybe you could also look at extending the DebugLogger output
> (http://www.zope.org/Members/tseaver/Projects/HighlyAvailableZope/DebugLogge
> r) and posting the results of any hanging there?
> 
> > RE: could be zombie related -
> >
> > Where might I find more info on this?  Could this zombie issue be
> > present in FCGI as well?
> 
> Amos Lattier remarked in
> http://lists.zope.org/pipermail/zope-dev/2000-April/004194.html that:
> 
>   "The ZServer zombie stuff is to get rid of zombie client
>    connections, not zombie publishing threads. These are quite
>    different beasts."
> 
> I'm not yet grokking the whole picture, so I can't really answer to that.
> Note that there is an outstanding issue in the Collector at
> http://classic.zope.org:8080/Collector/954/view that might be related. As
> you previously noted, there is no zombie_timeout in the FCGI server.

What the Zombie timeout means is that after a publishing thread gets
done answering a request, the socket may not go away.  This many for a a
number of reasons, the client 'hung' and is not 'putting down the phone
after the converstation is over' (so to speak) or network troubles may
prevent the connection from closing properly.  This means that there is
a 'zombie' connection laying around.  This zombie will probably end up
going away on its own, but if not, ZServer will kill it after a period
of time.

The only reasorce laying around during the life of a Zombie is an tiny
little unused open socket, the Mack truck of a Zope thread that served
the request for the zombie socket does not 'hang' for that entire period
of time, but goes on after it has completed the request to serve other
requests.

Amos is correct in that these problems are almost always at the
Application level, and not at the ZServer level.  The fact that Pavlos
can prevent hanging by inserting a print statement in the asyncore loop
is suspicious, but we do not have enough information yet to point
fingers anywhere.

-Michel