PySide Bugzilla Closed for New Bugs

PySide is now a Qt Add-on and uses the Qt Project's JIRA Bug Tracker instead of this Bugzilla instance. This Bugzilla is left for reference purposes.

Bug 990 - Segfault when trying to disconnect a signal that is not connected
: Segfault when trying to disconnect a signal that is not connected
Status: CLOSED FIXED
Product: PySide
Classification: Unclassified
Component: PySide
: 1.0.6
: All All
: P2 normal
Assigned To: renato filho
:
:
:
  Show dependency treegraph
 
Reported: 2011-08-28 02:51 EEST by bbreslauer
Modified: 2011-09-21 20:49 EEST (History)
8 users (show)

See Also:


Attachments
test script (885 bytes, text/x-python)
2011-08-28 02:51 EEST, bbreslauer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description bbreslauer 2011-08-28 02:51:55 EEST
Created attachment 412 [details]
test script

I found this segfault when I upgraded from 1.0.5 to 1.0.6.1 and seeing if bug
987 was still a problem.

As in bug 987, I am attempting to disconnect a signal that is not connected
(perhaps a question for a Qt list, but is there a way to check if a signal-slot
connection has already been made?).  If the class I am doing this in does not
subclass QObject, then I get a segfault.  I have tried signals from a couple
different Qt classes (QSpinBox, QFileDialog) so I think that this is not
specific to a single Qt class.  I have attached a test script.  The output I
get is:

$ python2 signal.py 
TestQ
False

Test
a
Segmentation fault
$ 


If I run it through gdb, then I get the following backtrace:

#0  0x00007ffff685f041 in ?? () from
/usr/lib/python2.7/site-packages/PySide/QtCore.so
#1  0x00007ffff6862e38 in ?? () from
/usr/lib/python2.7/site-packages/PySide/QtCore.so
#2  0x00007ffff7a6a323 in PyObject_Call () from /usr/lib/libpython2.7.so.1.0
#3  0x00007ffff7afaf87 in PyEval_CallObjectWithKeywords () from
/usr/lib/libpython2.7.so.1.0
#4  0x00007ffff64e9d0a in ?? () from /usr/lib/libpyside-python2.7.so.1.0
#5  0x00007ffff7b00aed in PyEval_EvalFrameEx () from
/usr/lib/libpython2.7.so.1.0
#6  0x00007ffff7b00f04 in PyEval_EvalFrameEx () from
/usr/lib/libpython2.7.so.1.0
#7  0x00007ffff7b0209f in PyEval_EvalCodeEx () from
/usr/lib/libpython2.7.so.1.0
#8  0x00007ffff7b021d2 in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0
#9  0x00007ffff7b1c2fc in run_mod () from /usr/lib/libpython2.7.so.1.0
#10 0x00007ffff7b1d0d0 in PyRun_FileExFlags () from
/usr/lib/libpython2.7.so.1.0
#11 0x00007ffff7b1db4f in PyRun_SimpleFileExFlags () from
/usr/lib/libpython2.7.so.1.0
#12 0x00007ffff7b2f00b in Py_Main () from /usr/lib/libpython2.7.so.1.0
#13 0x00007ffff74c513d in __libc_start_main () from /lib/libc.so.6
#14 0x0000000000400631 in _start ()
Comment 1 renato filho 2011-08-30 00:46:01 EEST
fixed on pyside commit:


commit fe821e16f8c76ed9251377734e81c92c9edebaaf
Author: Renato Filho <renato.filho@openbossa.org>
Date:   Fri Aug 26 18:42:26 2011 -0300
Comment 2 renato filho 2011-09-21 20:49:25 EEST
Release 1.0.7