Paul Winkler wrote:
1) an External Method was making an http request using httplib to a host that had become (wrongly) firewalled. I don't know how this could completely block zope, but that was the behavior I observed. A bit of using gcc as described in the "Debug a Spinning Zope" article helped me identify the ext. method in question and rewrite it so it can't possibly block like that.
This sounds like something that should be discussed on zope-dev, but if it comes down to something C-ish blocking python's thread stuff, then ti may even end up on python-dev...
2) When using ZEO with an inadequate client cache, it is possible to end up with zope apparently doing nothing but waiting for ZEO while the cache thrashes. This happened to us when somebody was downloading a very large file (more than twice the size of the client cache). A look at the event logs showed a long stream of ZEO client cache flip messages during the time in question. We drastically increased the size of the client cache and haven't had that problem since. I think that in this case, zope was still servicing requests, it was just doing so extremely slowly. When the download finished, everything instantly cleared right up.
Yeah, ZEO's storage server is currently single threaded, so it can cause problems if abused... cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk