On Tue, Aug 31, 2004 at 11:47:26AM +0100, Chris Withers wrote:
Joe Goldthwaite wrote:
I've never understood the threading issues - too complex for my feeble brain. I know that if one user performs a large job through Zope, it stops responding to other users until the big job is finished.
That's odd, you should look into that, it's not the norm...
I've seen the same behavior in a few situations: 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. 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. -- Paul Winkler http://www.slinkp.com