[Zope] ZServer: unhandled exception killing ZPublisher?
Anthony Baxter
anthony@interlink.com.au
Wed, 05 May 1999 17:31:04 +1000
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