[Checkins] SVN: Zope/branches/haufe-legacy-integration/ - Launchpad #373621: catching and logging exceptions that could cause

Andreas Jung andreas at andreas-jung.com
Sun May 10 11:22:15 EDT 2009


Log message for revision 99821:
  - Launchpad #373621: catching and logging exceptions that could cause
    leaking of worker threads
  

Changed:
  U   Zope/branches/haufe-legacy-integration/doc/CHANGES.rst
  U   Zope/branches/haufe-legacy-integration/src/ZServer/PubCore/ZServerPublisher.py

-=-
Modified: Zope/branches/haufe-legacy-integration/doc/CHANGES.rst
===================================================================
--- Zope/branches/haufe-legacy-integration/doc/CHANGES.rst	2009-05-10 15:14:02 UTC (rev 99820)
+++ Zope/branches/haufe-legacy-integration/doc/CHANGES.rst	2009-05-10 15:22:15 UTC (rev 99821)
@@ -23,6 +23,9 @@
 Features Added
 ++++++++++++++
 
+- Launchpad #373621: catching and logging exceptions that could cause
+  leaking of worker threads
+
 - zExceptions.convertExceptionType:  new API, breaking out conversion of
   exception names to exception types from 'upgradeException'.
 

Modified: Zope/branches/haufe-legacy-integration/src/ZServer/PubCore/ZServerPublisher.py
===================================================================
--- Zope/branches/haufe-legacy-integration/src/ZServer/PubCore/ZServerPublisher.py	2009-05-10 15:14:02 UTC (rev 99820)
+++ Zope/branches/haufe-legacy-integration/src/ZServer/PubCore/ZServerPublisher.py	2009-05-10 15:22:15 UTC (rev 99821)
@@ -11,11 +11,17 @@
 #
 ##############################################################################
 
+import logging
+
+LOG = logging.getLogger('ZServerPublisher')
+
 class ZServerPublisher:
     def __init__(self, accept):
+        from sys import exc_info
         from ZPublisher import publish_module
         from ZPublisher.WSGIPublisher import publish_module as publish_wsgi
         while 1:
+          try:
             name, a, b=accept()
             if name == "Zope2":
                 try:
@@ -36,3 +42,5 @@
                     # TODO: Support keeping connections open.
                     a['wsgi.output']._close = 1
                     a['wsgi.output'].close()
+          except:
+            LOG.error('exception caught', exc_info=True)



More information about the Checkins mailing list