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? Should I be wrapping the various ZServer threads in a try/except pair to restart them in case of a thread failing? thanks in advance Anthony Unhandled exception in thread: Traceback (innermost last): File "./PubCore/ZServerPublisher.py", line 97, in __init__ response._finish() File "/opt/zope/inst/ZServer/HTTPResponse.py", line 209, in _finish self.stdout.close() File "/opt/zope/inst/ZServer/HTTPResponse.py", line 235, in close self._channel.push(CallbackProducer(self._channel.done)) File "./HTTPServer.py", line 307, in push if send: self.initiate_send() File "./medusa/asynchat.py", line 199, in initiate_send self.refill_buffer() File "./medusa/asynchat.py", line 191, in refill_buffer self.producer_fifo.pop() File "./medusa/asynchat.py", line 253, in pop result = self.list[0] IndexError: list index out of range