[PyKDE] Crashing problems, suggestions?
Kevin Cureton
kevin at bang-splat.com
Thu Mar 1 20:36:36 GMT 2007
Since I converted my application from PyQt3 to PyQt4, I've run into
some issues with the threading.
I ran into the deadlock problems a while back and managed to avoid it
by only sending signals from QThreads to the main thread. The main
thread, instead of sending signals or events to the QThreads, would
instead hand them work via a thread-safe queue I wrote. Doing that
avoided the deadlock problem but appeared to uncover another issue.
Consistent crashes.
I'm not going to claim this is a PyQt or Qt issue. It could very well
be my failure to protect some resource with a mutex. However, after
various attempts over the past month, I need to take some focused
time and resolve this issue. I've attached a crash trace. We are
running the application on both Mac and Linux and similar results
(though I don't have a Linux trace available currently).
I'm looking for some ideas on how to approach debugging this problem
(or web pages that can help). I'm hoping to create a small, scoped
test case that demonstrates this problem and get that sent to the
list. Until then, any ideas or thoughts on how to proceed would be
greatly appreciated.
I am currently running Qt 4.2.2, and the sip and PyQT4 snapshots from
20070227 on both a Powerbook (PPC, 10.4.8) and a Mac Pro (Intel,
10.4.8).
--kev
Date/Time: 2007-03-01 12:24:00.858 -0800
OS Version: 10.4.8 (Build 8N1430)
Report Version: 4
Command: Python
Path: /Library/Frameworks/Python.framework/Versions/2.5/Resources/
Python.app/Contents/MacOS/Python
Parent: tcsh [547]
Version: 2.5a0 (2.5alpha0)
PID: 1862
Thread: 0
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x0000001c
Thread 0 Crashed:
0 QtCore 0x013b17fb QObject::thread() const + 9
1 QtCore 0x013a7790
QCoreApplicationPrivate::checkReceiverThread(QObject*) + 22
2 QtGui 0x0284e4ef QApplication::notify(QObject*,
QEvent*) + 151
3 QtGui.so 0x022fbc5b sipQApplication::notify(QObject*,
QEvent*) + 97
4 QtGui 0x0288600c
QApplicationPrivate::globalEventProcessor(OpaqueEventHandlerCallRef*,
OpaqueEventRef*, void*) + 1858
5 com.apple.HIToolbox 0x92dd986b DispatchEventToHandlers
(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1093
6 com.apple.HIToolbox 0x92dd8f10 SendEventToEventTargetInternal
(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 304
7 com.apple.HIToolbox 0x92dd8dd5 SendEventToEventTargetWithOptions
+ 55
8 com.apple.HIToolbox 0x92de0357 ToolboxEventDispatcherHandler
(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 357
9 com.apple.HIToolbox 0x92dd9c22 DispatchEventToHandlers
(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 2044
10 com.apple.HIToolbox 0x92dd8f10 SendEventToEventTargetInternal
(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 304
11 com.apple.HIToolbox 0x92de01f0 SendEventToEventTarget + 56
12 QtGui 0x0288027c qt_mac_send_event
(QFlags<QEventLoop::ProcessEventsFlag>, OpaqueEventRef*,
OpaqueWindowPtr*) + 122
13 QtGui 0x0288ca1e QEventDispatcherMac::processEvents
(QFlags<QEventLoop::ProcessEventsFlag>) + 594
14 QtCore 0x013a74a8 QEventLoop::processEvents
(QFlags<QEventLoop::ProcessEventsFlag>) + 54
15 QtCore 0x013a7686 QEventLoop::exec
(QFlags<QEventLoop::ProcessEventsFlag>) + 132
16 QtCore 0x013aa385 QCoreApplication::exec() + 179
17 QtGui.so 0x022feeeb meth_QApplication_exec_ + 97
18 org.python.python 0x00297818 PyEval_EvalFrameEx + 18969
(ceval.c:3566)
19 org.python.python 0x0029967e PyEval_EvalCodeEx + 1819 (ceval.c:
2833)
20 org.python.python 0x0022efd7 function_call + 320 (funcobject.c:
517)
21 org.python.python 0x0020dec3 PyObject_Call + 45 (abstract.c:1860)
22 org.python.python 0x002159e4 instancemethod_call + 401
(classobject.c:2493)
23 org.python.python 0x0020dec3 PyObject_Call + 45 (abstract.c:1860)
24 org.python.python 0x00295b49 PyEval_EvalFrameEx + 11594
(ceval.c:3777)
25 org.python.python 0x002984e0 PyEval_EvalFrameEx + 22241
(ceval.c:3652)
26 org.python.python 0x002984e0 PyEval_EvalFrameEx + 22241
(ceval.c:3652)
27 org.python.python 0x0029967e PyEval_EvalCodeEx + 1819 (ceval.c:
2833)
28 org.python.python 0x00299832 PyEval_EvalCode + 87 (ceval.c:500)
29 org.python.python 0x002bc7e8 PyRun_FileExFlags + 264
(pythonrun.c:1264)
30 org.python.python 0x002bcba9 PyRun_SimpleFileExFlags + 640
(pythonrun.c:870)
31 org.python.python 0x002ca1e4 Py_Main + 2915 (main.c:496)
32 org.python.python 0x00001f8e 0x1000 + 3982
33 org.python.python 0x00001eb5 0x1000 + 3765
--
Kevin Cureton
Co-Founder
Mind The Gap, Inc.
kevin at animationpipeline.com
http://www.animationpipeline.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20070301/d73be879/attachment.html
More information about the PyQt
mailing list