At 05:31 PM 5/5/99 +1000, Anthony Baxter wrote:
I've got a Zope system running with ZServer 1.0b1 on a Linux 2.0.36 system. Periodically, one of the test users here has managed to trigger a bug (I'm not sure what, or how). When they do, it seems to kill one of the ZServer threads, so that the system is still running, still accepting connections, but just hangs. I thought I saw something like this recently, but I can't see it in my mail archive.
Looking at the diffs between what I'm running and the current CVS tree, I see that ZServer/HTTPResponse.py has @@ -232,7 +237,7 @@
def close(self): self._channel.push(LoggingProducer(self._request, self._bytes), 0) + self._channel.push(CallbackProducer(self._channel.done), 0) - self._channel.push(CallbackProducer(self._channel.done)) if self._shutdown: self._channel.push(ShutdownProducer(), 0) elif self._close:
is this the correct fix?
This is an important fix, and it could be that applying this patch will fix your problem. In fact, looking at your traceback, I'd say that this will probably fix your problem.
Should I be wrapping the various ZServer threads in a try/except pair to restart them in case of a thread failing?
No. In general ZServer should handle any errors which crop up. -Amos