On Thu, Sep 02, 2004 at 09:32:54AM +0100, Chris Withers wrote:
Paul Winkler wrote:
I was using either urllib or urllib2 (don't remember). At that time (python 2.1), socket.setdefaulttimeout() did not exist so any request to a socket could potentially spin forever.
Cool, I didn't know python had finally grown one of those. Yay!
My theory is that, each time a request came for my external method, the current worker thread was then waiting forever for a reply from the firewalled socket. So, inevitably, sooner or later all threads were doing this and the server was effectively hung.
That makes sense...
But, I haven't been able to reproduce this behavior today with Zope 2.7.2, even with socket.setdefaulttimeout(None). I've currently got 16 pending requests for the never-finishing external method, and I can still browse zope just fine.
...but this doesn't. Have you upped the number to work threads to > 16?
Nope. This was a 2.7.2 server with the default 4 threads. Btw, I notice that even with socket.setdefaulttimeout(None), the requests eventually timed out after some minutes :-) Don't know how many, I didn't keep track. -- Paul Winkler http://www.slinkp.com