Unhandled exception in asynchat can take the entire Zope system down
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zope 2 |
Invalid
|
Low
|
Unassigned |
Bug Description
line 420 of asyncore's error handler calls close()
this calls producer's more() method.
sometimes producers can throw exceptions (in my case, reading from UNC path fails with IOError 22 when the system doesn't have sufficient resources), and this is not caught, bringing down the entire system.
The net result is the entire process comes down.
Traceback (most recent call last):
File "c:\dw304\
run()
File "c:\dw304\
start_
File "c:\dw304\
Lifetime.loop()
File "c:\dw304\
lifetime_loop()
File "c:\dw304\
asyncore.
File "c:\dw304\
write(obj)
File "c:\dw304\
obj.
File "c:\dw304\
asynchat.
File "c:\dw304\
self.close()
File "c:\dw304\
p.more() # free up resources held by producer
File "c:\dw304\
return self.iterator.
File "C:\DW304\
data = self._iterator.
File "c:\dw304\
raise IOError(22, '')
IOError: (22, '')
if we don't want to patch asyncore, then HTTPServer should catch the error.
Changed in zope2: | |
importance: | Medium → Low |
status: | New → Confirmed |
Changes: submitter email, importance (critical => medium)