[PyQt] Crash at exit involving signal connections, ideas?

Simon Edwards simon at simonzone.com
Sun Sep 14 16:59:20 BST 2008


Hello,

I'm working some Plasma stuff and am having trouble with a crash at exit 
time. A KDialog is opened containing a tree of widgets etc. (The KDialog 
has no parent, but is given one later on.) If I set up this signal 
below, then I get a crash at exit time:

   self.connect(self.dialog, SIGNAL("applyClicked()"), self.configAccepted)

But this form here works fine:

   self.connect(self.dialog, SIGNAL("applyClicked()"), self, 
SLOT("configAccepted"))

Anyone (Phil?) got any ideas about what is happening here? I have a 
feeling it is an already known problem, but I can't place it.

The crash looks like this:

Application: Plasma Applet Viewer (plasmoidviewer), signal SIGSEGV
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb5516720 (LWP 32054)]
[KCrash handler]
#6  0xb395f167 in QHash<void*, PyQtProxy*>::duplicateNode ()
    from /usr/lib/python2.5/site-packages/PyQt4/QtCore.so
#7  0xb76bd47c in QHashData::detach_helper (this=0x83b3490,
     node_duplicate=0xb395f15a <QHash<void*, 
PyQtProxy*>::duplicateNode(QHashData::Node*, void*)>, nodeSize=16) at 
tools/qhash.cpp:209
#8  0xb39603a5 in QHash<void*, PyQtProxy*>::detach_helper ()
    from /usr/lib/python2.5/site-packages/PyQt4/QtCore.so
#9  0xb395c814 in sipQtFindConnection ()
    from /usr/lib/python2.5/site-packages/PyQt4/QtCore.so
#10 0xb3e2c219 in ?? () from /usr/lib/python2.5/site-packages/sip.so
#11 0xb3d3e69a in subtype_traverse (self=0x82e42ec,
     visit=0xb3da4ee0 <visit_decref>, arg=0x0) at 
../Objects/typeobject.c:539
#12 0xb3da5a4e in collect (generation=2) at ../Modules/gcmodule.c:295
#13 0xb3da63ef in PyGC_Collect () at ../Modules/gcmodule.c:1265
#14 0xb3d994ab in Py_Finalize () at ../Python/pythonrun.c:389
#15 0xb53a1c39 in ~KPythonPluginFactory (this=0x818ef58)
     at /home/sbe/devel/kpythonpluginfactory/kpythonpluginfactory.cpp:222
#16 0xb779fe4f in QObjectCleanupHandler::clear (this=0x8182f90)
     at kernel/qobjectcleanuphandler.cpp:142
#17 0xb779fec0 in ~QObjectCleanupHandler (this=0x8182f90)
     at kernel/qobjectcleanuphandler.cpp:88
#18 0xb7a3a95d in destroy ()
     at 
/build/buildd/kde4libs-4.1.1+really4.1.1/kdecore/util/kpluginfactory.cpp:29
#19 0xb7928d0b in ~KCleanUpGlobalStatic (this=0xb7a708f4)
     at /build/buildd/kde4libs-4.1.1+really4.1.1/kdecore/kernel/kglobal.h:67
#20 0xb6b00084 in exit () from /lib/tls/i686/cmov/libc.so.6
#21 0xb6ae8458 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#22 0x0804b831 in _start ()
#0  0xb7f1f410 in __kernel_vsyscall ()

cheers,

-- 
Simon Edwards             | KDE-NL, Guidance tools, Guarddog Firewall
simon at simonzone.com       | http://www.simonzone.com/software/
Nijmegen, The Netherlands | "ZooTV? You made the right choice."


More information about the PyQt mailing list