Преглед изворни кода

Timer2 swallowed exceptions. Closes #626

Ask Solem пре 13 година
родитељ
комит
ca1d7058e0
1 измењених фајлова са 8 додато и 3 уклоњено
  1. 8 3
      celery/utils/timer2.py

+ 8 - 3
celery/utils/timer2.py

@@ -189,9 +189,14 @@ class Timer(Thread):
         try:
             entry()
         except Exception, exc:
-            if not self.schedule.handle_error(sys.exc_info()):
-                warnings.warn(TimedFunctionFailed(repr(exc))),
-                traceback.print_stack()
+            exc_info = sys.exc_info()
+            try:
+                if not self.schedule.handle_error(exc_info):
+                    warnings.warn(TimedFunctionFailed(repr(exc))),
+                    sys.stderr.write("Error in timer: %r\n" % (exc, ))
+                    traceback.print_exception(*exc_info, file=sys.stderr)
+            finally:
+                del(exc_info)
 
     def _next_entry(self):
         with self.not_empty: