Jelajahi Sumber

MaybeEncodingError was not wrapped in ExceptionInfo. Thanks to mtirsel. Closes #524

Ask Solem 13 tahun lalu
induk
melakukan
c5244e7280
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 3 1
      celery/concurrency/processes/pool.py

+ 3 - 1
celery/concurrency/processes/pool.py

@@ -198,8 +198,10 @@ def worker(inqueue, outqueue, initializer=None, initargs=(), maxtasks=None):
         try:
         try:
             put((READY, (job, i, result)))
             put((READY, (job, i, result)))
         except Exception, exc:
         except Exception, exc:
+            _, _, tb = sys.exc_info()
             wrapped = MaybeEncodingError(exc, result[1])
             wrapped = MaybeEncodingError(exc, result[1])
-            put((READY, (job, i, (False, wrapped))))
+            einfo = ExceptionInfo((MaybeEncodingError, wrapped, tb))
+            put((READY, (job, i, (False, einfo))))
 
 
         completed += 1
         completed += 1
     debug('worker exiting after %d tasks' % completed)
     debug('worker exiting after %d tasks' % completed)