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

Marcus Collins mcollins@sunesi.com
Tue, 11 Apr 2000 11:09:50 +0200


Some feedback:

I've installed Zope 2.1.6 from source on the same machine, with as close to
an identical setup as is possible on a live server. Even after really
hammering 2.1.6, though, I've been unable to produce the same hanging
behaviour observed in 2.1.3. The only differences, apart from the apache
rewrite rules, are that the 2.1.6 install is using GenericUserFolder 1.2.2
(vs. 1.1.0) and SiteAccess 1.0.1 (vs. 1.0.0). I doubt that these products
are the cause of the problem.

It's also pretty unlikely that this is an OS threads problem, at least on
our platform. We're running Zope on FreeBSD with pthreads; this is a
different thread implementation to that used on Linux. If this is happening
on Linux, FreeBSD and Solaris, the my hunch (dare I voice it?) is that this
hanging occurs somewhere deep in the bowels of ZServer. 

Zope has in the past been fairly stable using four threads; it was only when
the threads were increased to 20 that it began hanging repeatedly. We really
*do* need to run Zope with a modest number of threads, as some database
queries can be expected to take a couple of seconds to complete.

I really do want to get the the root of this problem; if anyone out there
has some suggestions or further information requirements, I'm listening!

Many thanks,

-- Marcus

-----Original Message-----
From: Marcus Collins [mailto:mcollins@sunesi.com] 
Sent: 10 April 2000 14:48
To: 'zope@zope.org'
Subject: [Zope] Zope hanging (poss. threads-related)


Apologies for the imposing subject line...

Briefly, since increasing the NUMBER_OF_THREADS that Zope uses from 
the default (4) to 20, Zope has been hanging randomly. A request 
will be sent off to Zope (whether through apache with mod_pcgi, or 
directly through ZServer), but the request is never served up, and 
Z2.log shows no record of it. No additional CPU is taken by the 
python process.

Environment:
 Zope 2.1.3 (source release)
 python 1.5.2
 GCC 2.7.2.3
 FreeBSD 3.3-RELEASE

The problem was reproducible on pages with framesets, where some of 
the frame documents are loaded, and one is omitted. It occurs when 
viewing the management interface, for example (manage_main is 
displayed, but manage_workspace is not). It seems that only one 
thread hangs, since other requests continue to be served. Not only 
frameset pages were affected, though only on frameset pages did the 
hanging consistently occur.

This behaviour was exhibited under minimal load (one or two users), 
and ceased when I reverted to 4 threads and restarted Zope.

Our development machine, running 2.1.4 source, had no such problems 
when running Zope with 20 threads. I don't recall any drastic 
changes or checkins between 2.1.3 and 2.1.4, though... (that was 
basically the /REQUEST traversal security fix)

I'll be installing Zope 2.1.6, and try to approximate the the same
conditions, but since this is a live machine, it's going to be 
tricky to find a window of time to perform the switch-over...

Anyone out there with some ideas as to the root cause of these 
hangings, or with similar tales to tell?

TIA,

-- Marcus