-
Bug
-
Resolution: Cannot Reproduce
-
Not Evaluated
-
None
-
1.2.2
-
None
-
RHEL 6.4 and pyside commit 0c64d1b2c6e5e0951675ad9b22294db4a10741c7 (
PYSIDE-164fix for similar deadlocking issues)
I've been able to reliably reproduce the issue with the attached deadlock.py which produces the following backtraces in gdb:
Main Thread
(gdb) py-bt
#21 Frame 0x127ff70, for file ./deadlock.py, line 34, in runTest (runnables=[<type unknown at remote 0x11e2368>, <type unknown at remote 0x11e2488>, <type unknown at remote 0x11e2560>, <type unknown at remote 0x11e2638>, <type unknown at remote 0x11e2710>, <type unknown at remote 0x11e27e8>, <type unknown at remote 0x11e28c0>, <type unknown at remote 0x11e2998>, <type unknown at remote 0x11e2a70>, <type unknown at remote 0x11e2b48>, <type unknown at remote 0x11e2c20>, <type unknown at remote 0x11e2cf8>, <type unknown at remote 0x11e2dd0>, <type unknown at remote 0x11e2ea8>, <type unknown at remote 0x11e2f80>, <type unknown at remote 0x11e3098>, <type unknown at remote 0x11e3170>, <type unknown at remote 0x11e3248>, <type unknown at remote 0x11e33b0>], x=18, sr=<...>)
sr.signal.connect(responder)
#54 Frame 0x6eb380, for file ./deadlock.py, line 44, in <module> ()
sys.exit(qApp.exec_())
(gdb) bt
#0 0x0000003f1d4e5159 in syscall () from /lib64/libc.so.6
#1 0x00007ffff0ca78eb in _q_futex (addr=0x12b13e0, op=0, val=2, timeout=0x0, addr2=0x0, val2=0) at thread/qmutex_unix.cpp:99
#2 0x00007ffff0ca79a8 in QMutexPrivate::wait (this=0x12b13e0, timeout=-1) at thread/qmutex_unix.cpp:113
#3 0x00007ffff0ca225d in QMutex::lockInternal (this=0x12b1060) at thread/qmutex.cpp:450
#4 0x00007ffff0ca1e48 in QMutex::lock (this=0x12b1060) at thread/qmutex.cpp:177
#5 0x00007ffff0c84cc2 in QMutex::lockInline (this=0x12b1060) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:198
#6 0x00007ffff0d9079f in QOrderedMutexLocker::relock (this=0x7fffffffad00) at ../../include/QtCore/private/../../../src/corelib/thread/qorderedmutexlocker_p.h:83
#7 0x00007ffff0d90730 in QOrderedMutexLocker::QOrderedMutexLocker (this=0x7fffffffad00, m1=0x12b1060, m2=0x12aebb0)
at ../../include/QtCore/private/../../../src/corelib/thread/qorderedmutexlocker_p.h:72
#8 0x00007ffff0e05437 in QMetaObjectPrivate::disconnect (sender=0x12af540, signal_index=0, receiver=0x12ae910, method_index=4, disconnectType=QMetaObjectPrivate::DisconnectAll)
at kernel/qobject.cpp:3292
#9 0x00007ffff0e05354 in QMetaObject::disconnect (sender=0x12af540, signal_index=0, receiver=0x12ae910, method_index=4) at kernel/qobject.cpp:3220
#10 0x00007ffff14426d5 in PySide::GlobalReceiverV2::notify() () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#11 0x00007ffff143b94e in PySide::SignalManager::notifyGlobalReceiver(QObject*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#12 0x00007ffff17ac49d in qobjectConnectCallback(QObject*, char const*, _object*, Qt::ConnectionType) ()
from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#13 0x00007ffff17af0d9 in Sbk_QObjectFunc_connect () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#14 0x00007ffff7c785ac in PyCFunction_Call (func=<built-in method connect of SignalCls object at remote 0x11e3440>, arg=
(<type unknown at remote 0x11e3440>, '2signal(QString)', <function at remote 0x7ffff1bf49b0>), kw=0x0) at Objects/methodobject.c:85
#15 0x00007ffff7c2b24a in PyObject_Call (func=<built-in method connect of SignalCls object at remote 0x11e3440>, arg=
(<type unknown at remote 0x11e3440>, '2signal(QString)', <function at remote 0x7ffff1bf49b0>), kw=0x0) at Objects/abstract.c:2529
#16 0x00007ffff7cfbf3e in PyEval_CallObjectWithKeywords (func=<built-in method connect of SignalCls object at remote 0x11e3440>, arg=
(<type unknown at remote 0x11e3440>, '2signal(QString)', <function at remote 0x7ffff1bf49b0>), kw=0x0) at Python/ceval.c:3890
#17 0x00007ffff7c2b1c0 in PyObject_CallObject (o=<built-in method connect of SignalCls object at remote 0x11e3440>, a=
(<type unknown at remote 0x11e3440>, '2signal(QString)', <function at remote 0x7ffff1bf49b0>)) at Objects/abstract.c:2517
#18 0x00007ffff1446782 in signalInstanceConnect () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#19 0x00007ffff7c785ac in PyCFunction_Call (func=<built-in method connect of PySide.QtCore.SignalInstance object at remote 0x7ffff8002900>, arg=(<function at remote 0x7ffff1bf49b0>,), kw=0x0)
at Objects/methodobject.c:85
#20 0x00007ffff7cfc6fb in call_function (pp_stack=0x7fffffffb478, oparg=1) at Python/ceval.c:4021
#21 0x00007ffff7cf8b6c in PyEval_EvalFrameEx (f=
Frame 0x127ff70, for file ./deadlock.py, line 34, in runTest (runnables=[<type unknown at remote 0x11e2368>, <type unknown at remote 0x11e2488>, <type unknown at remote 0x11e2560>, <type unknown at remote 0x11e2638>, <type unknown at remote 0x11e2710>, <type unknown at remote 0x11e27e8>, <type unknown at remote 0x11e28c0>, <type unknown at remote 0x11e2998>, <type unknown at remote 0x11e2a70>, <type unknown at remote 0x11e2b48>, <type unknown at remote 0x11e2c20>, <type unknown at remote 0x11e2cf8>, <type unknown at remote 0x11e2dd0>, <type unknown at remote 0x11e2ea8>, <type unknown at remote 0x11e2f80>, <type unknown at remote 0x11e3098>, <type unknown at remote 0x11e3170>, <type unknown at remote 0x11e3248>, <type unknown at remote 0x11e33b0>], x=18, sr=<...>), throwflag=0) at Python/ceval.c:2666
#22 0x00007ffff7cfa825 in PyEval_EvalCodeEx (co=<code at remote 0x7ffff7afb7b0>, globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=0x0, args=0x7ffff7b74068, argcount=0, kws=
0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#23 0x00007ffff7c5c940 in function_call (func=<function at remote 0x11e0a28>, arg=(), kw=0x0) at Objects/funcobject.c:526
#24 0x00007ffff7c2b24a in PyObject_Call (func=<function at remote 0x11e0a28>, arg=(), kw=0x0) at Objects/abstract.c:2529
#25 0x00007ffff7cfbf3e in PyEval_CallObjectWithKeywords (func=<function at remote 0x11e0a28>, arg=(), kw=0x0) at Python/ceval.c:3890
#26 0x00007ffff7c2b1c0 in PyObject_CallObject (o=<function at remote 0x11e0a28>, a=()) at Objects/abstract.c:2517
#27 0x00007ffff143bf59 in PySide::SignalManager::callPythonMetaMethod(QMetaMethod const&, void**, _object*, bool) ()
from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#28 0x00007ffff14429b0 in PySide::GlobalReceiverV2::qt_metacall(QMetaObject::Call, int, void**) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#29 0x00007ffff0def777 in QMetaObject::metacall (object=0x127c930, cl=QMetaObject::InvokeMetaMethod, idx=5, argv=0x7fffffffba60) at kernel/qmetaobject.cpp:245
#30 0x00007ffff0e065fb in QMetaObject::activate (sender=0x126d710, m=0x7ffff11a3520, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3577
#31 0x00007ffff0e6bdab in QTimer::timeout (this=0x126d710) at .moc/debug-shared/moc_qtimer.cpp:147
#32 0x00007ffff0e0fca1 in QTimer::timerEvent (this=0x126d710, e=0x7fffffffc5b0) at kernel/qtimer.cpp:280
#33 0x00007ffff1870690 in QTimerWrapper::timerEvent(QTimerEvent*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#34 0x00007ffff0e00bad in QObject::event (this=0x126d710, e=0x7fffffffc5b0) at kernel/qobject.cpp:1156
#35 0x00007ffff18700dc in QTimerWrapper::event(QEvent*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#36 0x00007fffeed67a06 in QApplicationPrivate::notify_helper (this=0x1201290, receiver=0x126d710, e=0x7fffffffc5b0) at kernel/qapplication.cpp:4562
#37 0x00007fffeed64ef3 in QApplication::notify (this=0xfbdb90, receiver=0x126d710, e=0x7fffffffc5b0) at kernel/qapplication.cpp:3944
#38 0x00007fffefd2b2f2 in QApplicationWrapper::notify(QObject*, QEvent*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtGui.so
#39 0x00007ffff0de6e76 in QCoreApplication::notifyInternal (this=0xfbdb90, receiver=0x126d710, event=0x7fffffffc5b0) at kernel/qcoreapplication.cpp:949
#40 0x00007ffff0deabc7 in QCoreApplication::sendEvent (receiver=0x126d710, event=0x7fffffffc5b0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#41 0x00007ffff0e28b6d in QTimerInfoList::activateTimers (this=0x644c60) at kernel/qeventdispatcher_unix.cpp:621
#42 0x00007ffff0e24cee in timerSourceDispatch (source=0x644c00) at kernel/qeventdispatcher_glib.cpp:186
#43 0x0000003f1ec38f0e in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#44 0x0000003f1ec3c938 in ?? () from /lib64/libglib-2.0.so.0
#45 0x0000003f1ec3ca3a in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#46 0x00007ffff0e25803 in QEventDispatcherGlib::processEvents (this=0x11a4080, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#47 0x00007fffeee46e0c in QGuiEventDispatcherGlib::processEvents (this=0x11a4080, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#48 0x00007ffff0de411c in QEventLoop::processEvents (this=0x7fffffffc930, flags=...) at kernel/qeventloop.cpp:149
#49 0x00007ffff0de42a8 in QEventLoop::exec (this=0x7fffffffc930, flags=...) at kernel/qeventloop.cpp:204
#50 0x00007ffff0de7500 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1221
#51 0x00007fffeed64ada in QApplication::exec () at kernel/qapplication.cpp:3823
#52 0x00007fffefd2d3cb in Sbk_QApplicationFunc_exec_ () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtGui.so
#53 0x00007ffff7cfc3a0 in call_function (pp_stack=0x7fffffffcb08, oparg=0) at Python/ceval.c:4005
#54 0x00007ffff7cf8b6c in PyEval_EvalFrameEx (f=Frame 0x6eb380, for file ./deadlock.py, line 44, in <module> (), throwflag=0) at Python/ceval.c:2666
#55 0x00007ffff7cfa825 in PyEval_EvalCodeEx (co=<code at remote 0x7ffff7afc4b0>, globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=
0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#56 0x00007ffff7cf470f in PyEval_EvalCode (co=<code at remote 0x7ffff7afc4b0>, globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0---Type <return> to continue, or q <return> to quit---
x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}) at Python/ceval.c:667
#57 0x00007ffff7d260f6 in run_mod (mod=0x6e6f50, filename=0x7fffffffd764 "./deadlock.py", globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, flags=0x7fffffffd070, arena=0x6b9d60)
at Python/pythonrun.c:1353
#58 0x00007ffff7d26076 in PyRun_FileExFlags (fp=0x6d68b0, filename=0x7fffffffd764 "./deadlock.py", start=257, globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, closeit=1, flags=0x7fffffffd070)
at Python/pythonrun.c:1339
#59 0x00007ffff7d24cfc in PyRun_SimpleFileExFlags (fp=0x6d68b0, filename=0x7fffffffd764 "./deadlock.py", closeit=1, flags=0x7fffffffd070) at Python/pythonrun.c:943
#60 0x00007ffff7d2453e in PyRun_AnyFileExFlags (fp=0x6d68b0, filename=0x7fffffffd764 "./deadlock.py", closeit=1, flags=0x7fffffffd070) at Python/pythonrun.c:747
#61 0x00007ffff7d3d463 in Py_Main (argc=2, argv=0x7fffffffd1f8) at Modules/main.c:639
#62 0x0000000000400744 in main (argc=2, argv=0x7fffffffd1f8) at ./Modules/python.c:23
Thread 3 (with emit() being called)
(gdb) thread 3
[Switching to thread 3 (Thread 0x7fffe71c8700 (LWP 31764))]#0 0x0000003f1e00d930 in sem_wait () from /lib64/libpthread.so.0
(gdb) py-bt
#24 Frame 0x7fffd800a230, for file ./deadlock.py, line 20, in run (self=<type unknown at remote 0x11e2488>)
self.signal.emit('running %s' % self._val)
(gdb) bt
#0 0x0000003f1e00d930 in sem_wait () from /lib64/libpthread.so.0
#1 0x00007ffff7d3ac36 in PyThread_acquire_lock (lock=0x6885a0, waitflag=1) at Python/thread_pthread.h:321
#2 0x00007ffff7cf4363 in PyEval_RestoreThread (tstate=0x7fffd800a140) at Python/ceval.c:357
#3 0x00007ffff7d234c9 in PyGILState_Ensure () at Python/pystate.c:609
#4 0x00007ffff11dbed3 in Shiboken::GilState::GilState() () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libshiboken-python2.7.so.1.2
#5 0x00007ffff143c367 in PySide::SignalManager::retriveMetaObject(_object*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#6 0x00007ffff17adcff in QObjectWrapper::metaObject() const () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#7 0x00007ffff0e05c14 in queued_activate (sender=0x12af540, signal=4, c=0x12b1600, argv=0x7fffd800a4e0) at kernel/qobject.cpp:3401
#8 0x00007ffff0e0617a in QMetaObject::activate (sender=0x12af540, m=0x12aeda0, local_signal_index=0, argv=0x7fffd800a4e0) at kernel/qobject.cpp:3503
#9 0x00007ffff0e0692c in QMetaObject::activate (sender=0x12af540, signal_index=4, argv=0x7fffd800a4e0) at kernel/qobject.cpp:3634
#10 0x00007ffff143c4cc in (anonymous namespace)::callMethod(QObject*, int, void**) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#11 0x00007ffff143bcd2 in PySide::SignalManager::qt_metacall(QObject*, QMetaObject::Call, int, void**) ()
from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#12 0x00007ffff17add52 in QObjectWrapper::qt_metacall(QMetaObject::Call, int, void**) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#13 0x00007ffff0def777 in QMetaObject::metacall (object=0x12af540, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0x7fffd800a4e0) at kernel/qmetaobject.cpp:245
#14 0x00007ffff1445670 in PySide::MetaFunction::call(QObject*, int, _object*, _object**) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#15 0x00007ffff143ba7e in PySide::SignalManager::emitSignal(QObject*, char const*, _object*) () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#16 0x00007ffff17b13d8 in Sbk_QObjectFunc_emit () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#17 0x00007ffff7c7858f in PyCFunction_Call (func=<built-in method emit of SignalCls object at remote 0x11e2518>, arg=('2signal(QString)', 'running 1'), kw=0x0) at Objects/methodobject.c:81
#18 0x00007ffff7c2b24a in PyObject_Call (func=<built-in method emit of SignalCls object at remote 0x11e2518>, arg=('2signal(QString)', 'running 1'), kw=0x0) at Objects/abstract.c:2529
#19 0x00007ffff7cfbf3e in PyEval_CallObjectWithKeywords (func=<built-in method emit of SignalCls object at remote 0x11e2518>, arg=('2signal(QString)', 'running 1'), kw=0x0)
at Python/ceval.c:3890
#20 0x00007ffff7c2b1c0 in PyObject_CallObject (o=<built-in method emit of SignalCls object at remote 0x11e2518>, a=('2signal(QString)', 'running 1')) at Objects/abstract.c:2517
#21 0x00007ffff1446a27 in signalInstanceEmit () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/libpyside-python2.7.so.1.2
#22 0x00007ffff7c7858f in PyCFunction_Call (func=<built-in method emit of PySide.QtCore.SignalInstance object at remote 0x7ffff8002768>, arg=('running 1',), kw=0x0)
at Objects/methodobject.c:81
#23 0x00007ffff7cfc6fb in call_function (pp_stack=0x7fffe71c76b8, oparg=1) at Python/ceval.c:4021
#24 0x00007ffff7cf8b6c in PyEval_EvalFrameEx (f=Frame 0x7fffd800a230, for file ./deadlock.py, line 20, in run (self=<type unknown at remote 0x11e2488>), throwflag=0) at Python/ceval.c:2666
---Type <return> to continue, or q <return> to quit---
#25 0x00007ffff7cfa825 in PyEval_EvalCodeEx (co=<code at remote 0x7ffff7af1430>, globals=
{'runTest': <function at remote 0x11e0a28>, 'QtGui': <module at remote 0x872c58>, 'qApp': <PySide.QtGui.QApplication at remote 0x11e2290>, '__builtins__': <module at remote 0x7ffff7b74ad0>, '__file__': './deadlock.py', 'responder': <function at remote 0x7ffff1bf49b0>, '__package__': None, 'sys': <module at remote 0x7ffff7b74b78>, 'SignalRunnable': <type SignalRunnable at remote 0x1217820>, 'time': <module at remote 0x7ffff1bfe050>, '__name__': '__main__', 'QtCore': <module at remote 0x7ffff1bfe2b8>, '__doc__': None}, locals=0x0, args=0x7ffff1bf3a28, argcount=1, kws=
0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3253
#26 0x00007ffff7c5c940 in function_call (func=<function at remote 0x7ffff1bf4c80>, arg=(<type unknown at remote 0x11e2488>,), kw=0x0) at Objects/funcobject.c:526
#27 0x00007ffff7c2b24a in PyObject_Call (func=<function at remote 0x7ffff1bf4c80>, arg=(<type unknown at remote 0x11e2488>,), kw=0x0) at Objects/abstract.c:2529
#28 0x00007ffff7c406af in instancemethod_call (func=<function at remote 0x7ffff1bf4c80>, arg=(<type unknown at remote 0x11e2488>,), kw=0x0) at Objects/classobject.c:2578
#29 0x00007ffff7c2b24a in PyObject_Call (func=<instancemethod at remote 0x11dbaa0>, arg=(), kw=0x0) at Objects/abstract.c:2529
#30 0x00007ffff17eb65d in QRunnableWrapper::run() () from /opt/pyside/1.2.2.2/Linux/qt-4.8/python-2.7/lib/python2.7/site-packages/PySide/QtCore.so
#31 0x00007ffff0c969c3 in QThreadPoolThread::run (this=0x12b1080) at concurrent/qthreadpool.cpp:107
#32 0x00007ffff0ca834d in QThreadPrivate::start (arg=0x12b1080) at thread/qthread_unix.cpp:338
#33 0x0000003f1e0079d1 in start_thread () from /lib64/libpthread.so.0
#34 0x0000003f1d4e88fd in clone () from /lib64/libc.so.6
Other threads are all waiting in time.sleep() with the GIL released/waiting to be acquired.