Browse Source

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

Ask Solem 11 năm trước cách đây
mục cha
commit
3b41f2349c
1 tập tin đã thay đổi với 4 bổ sung3 xóa
  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