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

Renato Araujo renatox at gmail.com
Sat Mar 10 14:45:37 CET 2012


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



On Sat, Mar 10, 2012 at 5:23 AM, Blair Zajac <blair at orcaware.com> wrote:
> 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
> PySide at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/pyside



More information about the PySide mailing list