Commit e03a5f03 authored by Tres Seaver's avatar Tres Seaver

Prevent uncaught exceptions from killing ZServer worker threads.

https://bugs.launchpad.net/zope2/+bug/627988.
parent b5890a9b
...@@ -8,6 +8,9 @@ Zope Changes ...@@ -8,6 +8,9 @@ Zope Changes
Bugs Fixed Bugs Fixed
- Prevent uncaught exceptions from killing ZServer worker threads.
https://bugs.launchpad.net/zope2/+bug/627988
- Ensure that mailhosts which share a queue directory do not double- - Ensure that mailhosts which share a queue directory do not double-
deliver mails, by sharing the thread which processes emails for deliver mails, by sharing the thread which processes emails for
that directory. https://bugs.launchpad.net/zope2/+bug/574286 that directory. https://bugs.launchpad.net/zope2/+bug/574286
......
...@@ -11,11 +11,17 @@ ...@@ -11,11 +11,17 @@
# #
############################################################################## ##############################################################################
import logging
LOG = logging.getLogger('ZServerPublisher')
class ZServerPublisher: class ZServerPublisher:
def __init__(self, accept): def __init__(self, accept):
from sys import exc_info
from ZPublisher import publish_module from ZPublisher import publish_module
from ZPublisher.WSGIPublisher import publish_module as publish_wsgi from ZPublisher.WSGIPublisher import publish_module as publish_wsgi
while 1: while 1:
try:
name, a, b=accept() name, a, b=accept()
if name == "Zope2": if name == "Zope2":
try: try:
...@@ -36,3 +42,5 @@ class ZServerPublisher: ...@@ -36,3 +42,5 @@ class ZServerPublisher:
# TODO: Support keeping connections open. # TODO: Support keeping connections open.
a['wsgi.output']._close = 1 a['wsgi.output']._close = 1
a['wsgi.output'].close() a['wsgi.output'].close()
except:
LOG.error('exception caught', exc_info=True)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment