فهرست منبع

[rdb] Fixes RDB support for gevent. Closes #1148

Ask Solem 11 سال پیش
والد
کامیت
3b41f2349c
1فایلهای تغییر یافته به همراه4 افزوده شده و 3 حذف شده
  1. 4 3
      celery/apps/worker.py

+ 4 - 3
celery/apps/worker.py

@@ -329,9 +329,10 @@ def install_rdb_handler(envvar='CELERY_RDBSIG',
     def rdb_handler(*args):
         """Signal handler setting a rdb breakpoint at the current frame."""
         with in_sighandler():
-            _, frame = args
-            from celery.contrib import rdb
-            rdb.set_trace(frame)
+            from celery.contrib.rdb import set_trace, _frame
+            # gevent does not pass standard signal handler args
+            frame = args[1] if args else _frame().f_back
+            set_trace(frame)
     if os.environ.get(envvar):
         platforms.signals[sig] = rdb_handler