On Friday 23 February 2007 09:15, Phil Thompson wrote: > On Friday 23 February 2007 5:00 pm, Michael Guntsche wrote: > > On Feb 23, 2007, at 17:09, Phil Thompson wrote: > > > The Python 2.5 binary from python.org. Qt, SIP and PyQt all built > > > without any > > > flags to their respecting configure scripts. > > > > Ok, I officially give up now, no more ideas. > > Is there any way I can debug this further? > > Just the usual. It's seems to be a deadlock as it only seems to be a > problem if you have 2 cores. > > Phil >
I can reproduce this problem with the latest snapshot. It seems that the main thread is waiting on a semaphore(Qt) for the worker threads while holding the python GIL. The worker threads all get stuck waiting for the GIL. I'm going to compile a debug build and see if i can't figure this out further, here is the traces I have now with a release build. Matt --------- Main Thread BT ------------------- (gdb) bt #0 0xb7f74c01 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 #1 0xb7af7ca1 in QWaitCondition::wait (this=0x834fd18, mutex=0x834fd10, time=4294967295) at thread/qwaitcondition_unix.cpp:254 #2 0xb7af406b in QReadWriteLock::lockForWrite (this=0x834e878) at thread/qreadwritelock.cpp:174 #3 0xb7badfdf in ~QObject (this=0x837aef0) at ../../include/QtCore/../../src/corelib/thread/qreadwritelock.h:122 #4 0xb6e7fc8d in ~QTextDocument (this=0x837aef0) at text/qtextdocument.cpp:302 #5 0xb6fcc673 in QLabelPrivate::clearContents (this=0x837b210) at widgets/qlabel.cpp:1167 #6 0xb6fccaee in QLabel::setText (this=0x837af00, [EMAIL PROTECTED]) at widgets/qlabel.cpp:314 #7 0xb75ae3fe in initQtGui () from /usr/lib/python2.4/site-packages/PyQt4/QtGui.so #8 0x080b9485 in PyEval_EvalFrame () #9 0x080ba745 in PyEval_EvalCodeEx () #10 0x08100b59 in PyClassMethod_New () #11 0x080589d7 in PyObject_Call () #12 0x0805e28e in PyClass_IsSubclass () #13 0x080589d7 in PyObject_Call () #14 0x080b3d2d in PyEval_CallObjectWithKeywords () #15 0xb7f99ee5 in initsip () from /usr/lib/python2.4/site-packages/sip.so #16 0xb7c75089 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #17 0xb7c75992 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #18 0xb7c75abc in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #19 0xb7bad5b5 in QMetaObject::activate (sender=0x83cd338, from_signal_index=29, to_signal_index=30, argv=<value optimized out>) at kernel/qobject.cpp:2940 #20 0xb7bad843 in QMetaObject::activate (sender=0x83cd338, m=0xb72ba104, from_local_signal_index=2, to_local_signal_index=3, argv=0xbfa9ecfc) at kernel/qobject.cpp:2992 #21 0xb715aea3 in QAbstractButton::clicked (this=0x83cd338, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:178 #22 0xb6f8856c in QAbstractButtonPrivate::emitClicked (this=0x8394758) at widgets/qabstractbutton.cpp:517 #23 0xb6f89d67 in QAbstractButtonPrivate::click (this=0x8394758) at widgets/qabstractbutton.cpp:510 #24 0xb6f89f70 in QAbstractButton::mouseReleaseEvent (this=0x83cd338, e=0xbfa9f3f4) at widgets/qabstractbutton.cpp:1076 #25 0xb7510d0c in initQtGui () from /usr/lib/python2.4/site-packages/PyQt4/QtGui.so #26 0xb6d473b3 in QWidget::event (this=0x83cd338, event=0xbfa9f3f4) at kernel/qwidget.cpp:5698 #27 0xb6f88f73 in QAbstractButton::event (this=0x83cd338, e=0xbfa9f3f4) at widgets/qabstractbutton.cpp:1038 #28 0xb6ffd444 in QPushButton::event (this=0x83cd338, e=0xbfa9f3f4) at widgets/qpushbutton.cpp:582 #29 0xb750c480 in initQtGui () from /usr/lib/python2.4/site-packages/PyQt4/QtGui.so #30 0xb6d0609c in QApplicationPrivate::notify_helper (this=0x8249e30, receiver=0x83cd338, e=0xbfa9f3f4) at kernel/qapplication.cpp:3434 #31 0xb6d085bd in QApplication::notify (this=0x826bf08, receiver=0x83cd338, e=0xbfa9f3f4) at kernel/qapplication.cpp:3133 #32 0xb76ebf03 in initQtGui () from /usr/lib/python2.4/site-packages/PyQt4/QtGui.so #33 0xb6d5c8cb in QETWidget::translateMouseEvent (this=0x83cd338, event=0xbfa9f6a8) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:186 #34 0xb6d5beef in QApplication::x11ProcessEvent (this=0x826bf08, event=0xbfa9f6a8) at kernel/qapplication_x11.cpp:2764 #35 0xb6d7eb43 in QEventDispatcherX11::processEvents (this=0x827aa28, [EMAIL PROTECTED]) at kernel/qeventdispatcher_x11.cpp:112 #36 0xb7b9a751 in QEventLoop::processEvents (this=0xbfa9f800, [EMAIL PROTECTED]) at kernel/qeventloop.cpp:126 #37 0xb7b9a85a in QEventLoop::exec (this=0xbfa9f800, [EMAIL PROTECTED]) at kernel/qeventloop.cpp:172 #38 0xb7b9c9c6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:727 #39 0xb6d05b37 in QApplication::exec () at kernel/qapplication.cpp:2927 #40 0xb76ecc1d in initQtGui () from /usr/lib/python2.4/site-packages/PyQt4/QtGui.so #41 0x080b9485 in PyEval_EvalFrame () #42 0x080ba745 in PyEval_EvalCodeEx () #43 0x080ba7a9 in PyEval_EvalCode () #44 0x080dd157 in PyRun_FileExFlags () #45 0x080dd354 in PyRun_SimpleFileExFlags () #46 0x08055ba8 in Py_Main () #47 0x08055032 in main () ----------- All the theads have this bt except for one, which is below ------- (gdb) thread 2 [Switching to thread 2 (Thread -1231635536 (LWP 19066))]#0 0xb7f769ab in [EMAIL PROTECTED] () from /lib/tls/libpthread.so.0 (gdb) bt #0 0xb7f769ab in [EMAIL PROTECTED] () from /lib/tls/libpthread.so.0 #1 0xb696bb90 in ?? () #2 0x080e155d in PyThread_acquire_lock () #3 0x080b43fd in PyEval_RestoreThread () #4 0xb7c8e164 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #5 0x080b9485 in PyEval_EvalFrame () #6 0x080ba745 in PyEval_EvalCodeEx () #7 0x08100b59 in PyClassMethod_New () #8 0x080589d7 in PyObject_Call () #9 0x0805e28e in PyClass_IsSubclass () #10 0x080589d7 in PyObject_Call () #11 0x080b3d2d in PyEval_CallObjectWithKeywords () #12 0xb7f97fec in initsip () from /usr/lib/python2.4/site-packages/sip.so #13 0xb7c7169d in ?? () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #14 0xb7c8f048 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #15 0xb7af6f54 in QThreadPrivate::start (arg=0x83937b0) at thread/qthread_unix.cpp:146 #16 0xb7f720bd in start_thread () from /lib/tls/libpthread.so.0 #17 0xb7ed892e in clone () from /lib/tls/libc.so.6 ----------------------------------------------------- (gdb) thread 4 [Switching to thread 4 (Thread -1248752720 (LWP 19068))]#0 0xb7f769ab in [EMAIL PROTECTED] () from /lib/tls/libpthread.so.0 (gdb) bt #0 0xb7f769ab in [EMAIL PROTECTED] () from /lib/tls/libpthread.so.0 #1 0xb5918b90 in ?? () #2 0x080e155d in PyThread_acquire_lock () #3 0x080b43fd in PyEval_RestoreThread () #4 0x080daff6 in PyGILState_Ensure () #5 0xb7c71a97 in ?? () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #6 0xb7c7a1ab in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #7 0xb7ba4294 in QMetaType::construct (type=296, copy=0xb5917de8) at kernel/qmetatype.cpp:1050 #8 0xb7bad3f9 in QMetaObject::activate (sender=0x83958a0, from_signal_index=4, to_signal_index=4, argv=0xb5917dac) at kernel/qobject.cpp:2851 #9 0xb7bae0ac in QMetaObject::activate (sender=0x83958a0, m=0xb7d6b284, local_signal_index=0, argv=0xb5917dac) at kernel/qobject.cpp:2983 #10 0xb7c74481 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #11 0xb7c74507 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #12 0xb7f99c70 in initsip () from /usr/lib/python2.4/site-packages/sip.so #13 0xb7d26a8b in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #14 0x080b9485 in PyEval_EvalFrame () #15 0x080ba745 in PyEval_EvalCodeEx () #16 0x08100b59 in PyClassMethod_New () #17 0x080589d7 in PyObject_Call () #18 0x0805e28e in PyClass_IsSubclass () #19 0x080589d7 in PyObject_Call () #20 0x080b3d2d in PyEval_CallObjectWithKeywords () #21 0xb7f97fec in initsip () from /usr/lib/python2.4/site-packages/sip.so #22 0xb7c7169d in ?? () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #23 0xb7c8f048 in initQtCore () from /usr/lib/python2.4/site-packages/PyQt4/QtCore.so #24 0xb7af6f54 in QThreadPrivate::start (arg=0x838e2d8) at thread/qthread_unix.cpp:146 #25 0xb7f720bd in start_thread () from /lib/tls/libpthread.so.0 #26 0xb7ed892e in clone () from /lib/tls/libc.so.6 Matt _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
