[PyQt] segfault after upgrading to 4.6.1

dizou di_zou at yahoo.com
Tue Sep 21 19:35:35 BST 2010


We just upgraded from PyQt 4.5 to 4.6.1. Everything worked fine with 4.5. Now
I get a segfault when I call QApplication.processEvents()

Here is part of the trace:

Program received signal SIGSEGV, Segmentation fault.
0x00002aaaaf1a33fd in QPixmapCache::Key::operator= (this=0x4fbb028,
other=...)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/image/qpixmapcache.cpp:163
163    
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/image/qpixmapcache.cpp:
No such file or directory.
        in
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/image/qpixmapcache.cpp
(gdb) where
#0  0x00002aaaaf1a33fd in QPixmapCache::Key::operator= (this=0x4fbb028,
other=...)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/image/qpixmapcache.cpp:163
#1  0x00002aaaaf6f2902 in QGraphicsScenePrivate::drawItemHelper
(this=0x14c0f60, item=0x4d08dd0, painter=0x7fffffff6710, option=0x14c11b8, 
    widget=0x7fffffff5b30, painterStateProtection=true)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsscene.cpp:4604
#2  0x00002aaaaf6f365d in QGraphicsScenePrivate::draw (this=0x14c0f60,
item=0x4d08dd0, painter=0x7fffffff6710, viewTransform=0x7fffffff63c0, 
    transformPtr=0x7fffffff5e90, exposedRegion=0x14bfdd0, widget=0x14be300,
opacity=1, effectTransform=0x0, wasDirtyParentSceneTransform=false, 
    drawItem=true) at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsscene.cpp:4835
#3  0x00002aaaaf6f3ec0 in QGraphicsScenePrivate::drawSubtreeRecursive
(this=0x14c0f60, item=0x4d08dd0, painter=0x7fffffff6710, 
    viewTransform=0x7fffffff63c0, exposedRegion=0x14bfdd0, widget=0x14be300,
parentOpacity=<value optimized out>, effectTransform=0x0)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsscene.cpp:4757
#4  0x00002aaaaf6f4a5f in QGraphicsScenePrivate::drawItems (this=0x14c0f60,
painter=0x7fffffff6710, viewTransform=0x7fffffff63c0, 
    exposedRegion=0x14bfdd0, widget=0x14be300)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsscene.cpp:4639
#5  0x00002aaaaf712e2e in QGraphicsView::paintEvent (this=0x14c0aa0,
event=<value optimized out>)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsview.cpp:3387
#6  0x00002aaaae96574f in ?? () from
/usr/cta/CSE/Release/pyqt-4.6.1/lib/python2.6/site-packages/PyQt4/QtGui.so
#7  0x00002aaaaf123edc in QWidget::event (this=0x14c0aa0,
event=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qwidget.cpp:8190
#8  0x00002aaaaf4d4e9b in QFrame::event (this=0x14c0aa0, e=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/widgets/qframe.cpp:557
#9  0x00002aaaaf55feb7 in QAbstractScrollArea::viewportEvent (this=0x21,
e=0x7fffffff5a90)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/widgets/qabstractscrollarea.cpp:1036
#10 0x00002aaaaf714591 in QGraphicsView::viewportEvent (this=0x14c0aa0,
event=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/graphicsview/qgraphicsview.cpp:2787
#11 0x00002aaaae962c01 in ?? () from
/usr/cta/CSE/Release/pyqt-4.6.1/lib/python2.6/site-packages/PyQt4/QtGui.so
#12 0x00002aaaaf562898 in viewportEvent (this=<value optimized out>,
o=<value optimized out>, e=0x4de9bb0)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/widgets/qabstractscrollarea_p.h:100
#13 QAbstractScrollAreaFilter::eventFilter (this=<value optimized out>,
o=<value optimized out>, e=0x4de9bb0)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/widgets/qabstractscrollarea_p.h:116
#14 0x00002aaaafd3badf in
QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value
optimized out>, receiver=0x14be300, event=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/corelib/kernel/qcoreapplication.cpp:841
#15 0x00002aaaaf0c5100 in QApplicationPrivate::notify_helper (this=0xf8e500,
receiver=0x14be300, e=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qapplication.cpp:4298
#16 0x00002aaaaf0ceca2 in QApplication::notify (this=0xf7c670,
receiver=0x14be300, e=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qapplication.cpp:3736
#17 0x00002aaaaea916a4 in ?? () from
/usr/cta/CSE/Release/pyqt-4.6.1/lib/python2.6/site-packages/PyQt4/QtGui.so
#18 0x00002aaaafd3b7e4 in QCoreApplication::notifyInternal (this=0xf7c670,
receiver=0x14be300, event=0x7fffffff7190)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/corelib/kernel/qcoreapplication.cpp:726
#19 0x00002aaaaf11ac55 in sendSpontaneousEvent (this=0x14be330,
pdev=0x138da28, rgn=..., offset=..., flags=<value optimized out>,
sharedPainter=0x0, 
    backingStore=0x14bb2b0) at
../../include/QtCore/../../../../Source/qt-4.6.3/src/corelib/kernel/qcoreapplication.h:218
#20 QWidgetPrivate::drawWidget (this=0x14be330, pdev=0x138da28, rgn=...,
offset=..., flags=<value optimized out>, sharedPainter=0x0, 
    backingStore=0x14bb2b0) at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qwidget.cpp:5363
#21 0x00002aaaaf2d5146 in QWidgetBackingStore::sync (this=0x14bb2b0)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/painting/qbackingstore.cpp:1292
#22 0x00002aaaaf112de6 in QWidgetPrivate::syncBackingStore (this=0x136d150)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qwidget.cpp:1688
#23 0x00002aaaaf124006 in QWidget::event (this=0x136eab0, event=0x4de9f90)
    at
/home/cse/CSE/build_stable/CMakeExternals/Source/qt-4.6.3/src/gui/kernel/qwidget.cpp:8337
#24 0x00002aaaaf4f0f0b in QMainWindow::event (this=0x136eab0,
event=0x4de9f90)

The seg fault happens when a QGraphicsItems are being updated in a
QGraphicsScene. QApplication.processEvents() in other places do not
segfault.

I thought the segfault might have to do with chaching because my
QGraphicsView has self.setCacheMode(QGraphicsView.CacheBackground), but when
I commented this out, I still get the seg fault.

Thanks in advance for the help.
-- 
View this message in context: http://old.nabble.com/segfault-after-upgrading-to-4.6.1-tp29772391p29772391.html
Sent from the PyQt mailing list archive at Nabble.com.



More information about the PyQt mailing list