chiark / gitweb /
hippotatd: catch errors from request.finish in _req_cancel
[hippotat.git] / hippotatd
index e2bed4216091b5dec535c299ccf896468969ef64..f3d88d628afddbee0e8e88d81eab2e9a0fa979bb 100755 (executable)
--- a/hippotatd
+++ b/hippotatd
@@ -104,7 +104,8 @@ class Client():
 
   def _req_cancel(self, request):
     self._log(DBG.HTTP_CTRL, 'cancel', idof=request)
-    request.finish()
+    try: request.finish()
+    except Exception: pass
 
   def _req_error(self, err, request):
     self._log(DBG.HTTP_CTRL, 'error %s' % err, idof=request)
@@ -375,6 +376,10 @@ def daemonise():
       elif level == LogLevel.warn             : sl = syslog.LOG_WARNING
       else                                    : sl = syslog.LOG_INFO
       syslog.syslog(sl,m)
+      failure = event.get('log_failure')
+      if failure is not None:
+        for l in failure.getTraceback().split('\n'):
+          syslog.syslog(sl,l)
     glp = twisted.logger.globalLogPublisher
     glp.addObserver(emit)
     log_debug(DBG.INIT, 'starting to log to syslog')