[PySide] 1.1.0 core dump with short-circuit signal name

41 views
Skip to first unread message

Blair Zajac

unread,
Mar 10, 2012, 3:23:31 AM3/10/12
to pys...@qt-project.org
Hello,

I'm new to PySide develop so wanted to open this on the mailing list
before opening a ticket, being uncertain about bug policy on this project.

The below script core dumps using PySide 1.1.0 on Ubuntu 12.04 Beta 1.
Can anyone else confirm this on their system. The same code doesn't
core dump on Ubuntu 11.10 with PySide 1.0.6.

If it is reproducible, then it seems that it shouldn't core dump, even
if the code isn't valid PySide code.

Below is a stack trace and the code.

Thanks,
Blair

PS We're moving a large project from PyQt3 to PySide, so that's how I
ran into this.


Core was generated by `python t3.py'.
Program terminated with signal 11, Segmentation fault.
#0 0x000000000041aec9 in PyObject_Call ()
(gdb) bt
#0 0x000000000041aec9 in PyObject_Call ()
#1 0x00000000004b5d96 in PyEval_CallObjectWithKeywords ()
#2 0x00007f32da0052da in
PySide::SignalManager::callPythonMetaMethod(QMetaMethod const&, void**,
_object*, bool) ()
from /usr/lib/x86_64-linux-gnu/libpyside-python2.7.so.1.1
#3 0x00007f32da00575c in PySide::SignalManager::qt_metacall(QObject*,
QMetaObject::Call, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libpyside-python2.7.so.1.1
#4 0x00007f32d958aad9 in QMetaObject::activate(QObject*, QMetaObject
const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5 0x00007f32da005990 in PySide::SignalManager::qt_metacall(QObject*,
QMetaObject::Call, int, void**) ()
from /usr/lib/x86_64-linux-gnu/libpyside-python2.7.so.1.1
#6 0x00007f32da005fd7 in PySide::SignalManager::emitSignal(QObject*,
char const*, _object*) () from
/usr/lib/x86_64-linux-gnu/libpyside-python2.7.so.1.1
#7 0x00007f32da32d938 in ?? ()
from /usr/lib/python2.7/dist-packages/PySide/QtCore.so
#8 0x00000000004b65c1 in PyEval_EvalFrameEx ()
#9 0x00000000004b6b97 in PyEval_EvalFrameEx ()
#10 0x00000000004bcd0d in PyEval_EvalCodeEx ()
#11 0x00000000004bd7e2 in PyEval_EvalCode ()
#12 0x00000000004dcc52 in run_mod ()
#13 0x00000000004dd814 in PyRun_FileExFlags ()
#14 0x00000000004de28e in PyRun_SimpleFileExFlags ()
#15 0x00000000004ee6dd in Py_Main ()
#16 0x00007f32da9e076d in __libc_start_main ()
from /lib/x86_64-linux-gnu/libc.so.6
#17 0x000000000041ce39 in _start ()

#!/usr/bin/python

from PySide import QtCore, QtGui

SIGNAL_NAME = 'testSignal'

class EmitterClass(QtCore.QObject):
def __init__(self):
super(EmitterClass, self).__init__()

def emitter(self):
self.emit(QtCore.SIGNAL(SIGNAL_NAME), 100)

class ListeningClass(QtCore.QObject):
def __init__(self):
super(ListeningClass, self).__init__()
self.emitter = EmitterClass()
QtCore.QObject.connect(self.emitter, QtCore.SIGNAL(SIGNAL_NAME),
self.output)

def output(self, number):
print number

if __name__ == '__main__':
c = ListeningClass()
c.emitter.emitter()
_______________________________________________
PySide mailing list
PyS...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/pyside

Renato Araujo

unread,
Mar 10, 2012, 8:45:37 AM3/10/12
to Blair Zajac, pys...@qt-project.org
Hi Blair,

I recommend to you use the new singal/slot API[1], since this is a bug
on the deprecated API this have low priority to fix.

[1]http://qt-project.org/wiki/Signals_and_Slots_in_PySide


Renato Araujo Oliveira Filho

Blair Zajac

unread,
Mar 10, 2012, 11:09:20 AM3/10/12
to Renato Araujo, pys...@qt-project.org
Hi Renato,

Thanks, however, we're porting an 80k LOC project from PyQt3, so we'll
be using the old signal/slot mechanism for now just to get the app
running and then we may cut over to the new signal/slots.

I'll open a bug report to track this.

Blair

anatoly techtonik

unread,
Mar 12, 2012, 5:10:38 AM3/12/12
to Blair Zajac, pys...@qt-project.org
Is it possible to implement better exception handling to warn about
old signal/slots being used with a redirect to this bug report before
exiting?
--
anatoly t.
Reply all
Reply to author
Forward
0 new messages