[PyQt] PyQt snapshot crash on Qt5.4 with bogus QGraphicsVideoItem instance

Phil Thompson phil at riverbankcomputing.com
Wed Dec 17 14:41:37 GMT 2014


On 17/12/2014 2:03 pm, lloyd konneker wrote:
> I'm trying to compile my app with Qt5.4.  Using the PyQt snapshot of
> two days ago OR PyQt5.3.2 my app crashes on both Linux and OSX. Very
> mysteriously: print statements show certain objects as being of class
> QtGraphicsVideoItem, but I don't use those classes and my app created
> the object instance as another class.
> 
> Maybe QML is using QtGraphicsVideoItem?  I am in progress of changing
> my app to use QML for the view, but I can switch back and forth
> between QML and QWidget gui's and both crash (although maybe I am not
> cleanly omitting QML imports for the QWidget implementation?)
> 
> Using gdb on Ubuntu14.04,  Python3.4 I get:
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0xb795567f in qpycore_qobject_getattr(QObject const*, _object*, char 
> const*) ()
>    from /usr/lib/python3.4/site-packages/PyQt5/QtCore.so
> (gdb) bt
> #0  0xb795567f in qpycore_qobject_getattr(QObject const*, _object*,
> char const*) ()
>    from /usr/lib/python3.4/site-packages/PyQt5/QtCore.so
> #1  0xb7861652 in meth_QObject___getattr__ () from
> /usr/lib/python3.4/site-packages/PyQt5/QtCore.so
> #2  0x081574b3 in PyObject_Call ()
> #3  0x080bf175 in PyObject_CallFunctionObjArgs ()
> #4  0x080f89c9 in ?? ()
> #5  0x0818adcd in PyEval_EvalFrameEx ()
> #6  0x0818ec42 in PyEval_EvalFrameEx ()
> #7  0x0818ec42 in PyEval_EvalFrameEx ()
> 
> Which I interpret to mean that it is trying to access an attribute of
> an object of a certain class, but the object is not really of that
> class (prints as QGraphicsVideoItem but my app created it as another
> class.)
> 
> I don't have a small example, it seems like memory corruption
> somewhere, I don't think a small example would exhibit.
> 
> I suppose I should make gdb camp on the data (instance) that is
> mysteriously morphing, but I don't have experience with that in a PyQt
> context.

Try removing the %ConvertToSubClassCode in qgraphicsvideoitem.sip

Phil


More information about the PyQt mailing list