STINNER Victor <victor.stin...@haypocalc.com> added the comment: Oh, I reproduced the bug. ------------------------ [3021] test_threadsignals test_signals (test.test_threadsignals.ThreadSignals) ... test_signals: acquire lock (thread -1610559488) test_signals: wait lock (thread -1610559488) send_signals: enter (thread 27159552) send_signals: raise SIGUSR1 send_signals: raise SIGUSR2 send_signals: release signalled_all send_signals: exit (thread 27159552)
^C ------------------------ There are 2 threads: faulthandler thread and the mainthread. Trace of the main thread: ------- (gdb) where #0 0xffff027a in ___spin_lock () at /System/Library/Frameworks/System.framework/PrivateHeaders/i386/cpu_capabilities.h:216 #1 0x90001433 in pthread_mutex_lock () #2 0x0011b34c in PyThread_acquire_lock_timed (lock=0x1124f10, microseconds=0, intr_flag=0) at Python/thread_pthread.h:450 #3 0x0011b73e in PyThread_acquire_lock (lock=0x1124f10, waitflag=0) at Python/thread_pthread.h:531 #4 0x000775b2 in Py_AddPendingCall (func=0x713dd <checksignals_witharg>, arg=0x0) at Python/ceval.c:509 #5 0x00071445 in signal_handler (sig_num=31) at ./Modules/signalmodule.c:189 #6 <signal handler called> #7 0x9010d494 in spin_unlock () #8 0x90001620 in pthread_mutex_lock () #9 0x0011b34c in PyThread_acquire_lock_timed (lock=0x1124f10, microseconds=0, intr_flag=0) at Python/thread_pthread.h:450 #10 0x0011b73e in PyThread_acquire_lock (lock=0x1124f10, waitflag=0) at Python/thread_pthread.h:531 #11 0x000775b2 in Py_AddPendingCall (func=0x713dd <checksignals_witharg>, arg=0x0) at Python/ceval.c:509 #12 0x00071445 in signal_handler (sig_num=30) at ./Modules/signalmodule.c:189 #13 <signal handler called> #14 0x900248c7 in semaphore_wait_signal_trap () #15 0x900288b4 in pthread_cond_wait () #16 0x0011b52c in PyThread_acquire_lock_timed (lock=0x1171180, microseconds=-1, intr_flag=1) at Python/thread_pthread.h:476 #17 0x00180746 in acquire_timed (lock=0x1171180, microseconds=-1) at ./Modules/_threadmodule.c:66 #18 0x001809aa in lock_PyThread_acquire_lock (self=0x14ff820, args=0x512038, kwds=0x0) at ./Modules/_threadmodule.c:133 #19 0x0005f58e in PyCFunction_Call (func=0x166c5f8, arg=0x512038, kw=0x0) at Objects/methodobject.c:84 #20 0x0008c1cd in call_function (pp_stack=0xbfff5f64, oparg=0) at Python/ceval.c:3859 #21 0x000869dd in PyEval_EvalFrameEx (f=0x1193798, throwflag=0) at Python/ceval.c:2657 ... ------- The main thread was waiting test_signals() lock (signalled_all) while it is was interrupted by a signal. The signal handler calls Py_AddPendingCall() which blocks on acquiring "pending_lock". ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue11768> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com