Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-18021

Crash in QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • None
    • 4.7.1, 4.7.2, 4.8.0, 5.5.1, 5.7.0
    • Widgets: GraphicsView
    • None
    • Gentoo linux (x86_64), glibc 2.12.2, KDE 4.5.5, xorg-server 1.7.7, gcc-4.5.2, Qt compiled from source with -O2 -mtune=generic

      Arch linux (x86_64), Qt compiled from source with debug symbols

    Description

      I get a reproducible crash with amarok-2.4.0 on x86_64 linux with Qt 4.7.1 and 4.7.2. It happens randomly (once an hour or so) on track change when playing mp3 files. I tried to disable raster backend but got the same crash.

      I use the following applets in amarok: Current Track, Labels, Albums, Similar Artists, Lyrics.

      To me it looks like a regression from Qt 4.6.0 (QTBUG-5090).

      Backtrace I made with: gdb --args amarok --debug --sync --nofork

      (gdb) bt
      #0 0x00007ffff65d56df in QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) () from
      /usr/lib64/qt4/libQtGui.so.4
      #1 0x00007ffff65d45f0 in QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int)
      const () from /usr/lib64/qt4/libQtGui.so.4
      #2 0x00007ffff65d45f0 in QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int)
      const () from /usr/lib64/qt4/libQtGui.so.4
      #3 0x00007ffff65d4550 in QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int)
      const () from /usr/lib64/qt4/libQtGui.so.4
      #4 0x00007ffff65d4cae in QGraphicsSceneBspTree::items(QRectF const&, bool) const () from
      /usr/lib64/qt4/libQtGui.so.4
      #5 0x00007ffff65d7b88 in QGraphicsSceneBspTreeIndexPrivate::estimateItems(QRectF const&, Qt::SortOrder, bool)
      () from /usr/lib64/qt4/libQtGui.so.4
      #6 0x00007ffff65d7d63 in QGraphicsSceneBspTreeIndex::estimateTopLevelItems(QRectF const&, Qt::SortOrder)
      const () from /usr/lib64/qt4/libQtGui.so.4
      #7 0x00007ffff65cb55b in QGraphicsScenePrivate::drawItems(QPainter*, QTransform const*, QRegion*, QWidget*)
      () from /usr/lib64/qt4/libQtGui.so.4
      #8 0x00007ffff65e86ac in QGraphicsView::paintEvent(QPaintEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #9 0x00007ffff60387fe in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #10 0x00007ffff63c52c6 in QFrame::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #11 0x00007ffff65e994b in QGraphicsView::viewportEvent(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #12 0x00007ffff5629c37 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #13 0x00007ffff5fe6e01 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtGui.so.4
      #14 0x00007ffff5feba0a in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #15 0x00007ffff79ca876 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
      #16 0x00007ffff5629aac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #17 0x00007ffff60356d8 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int,
      QPainter*, QWidgetBackingStore*) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #18 0x00007ffff603629f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int,
      QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
      #19 0x00007ffff603541a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int,
      QPainter*, QWidgetBackingStore*) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #20 0x00007ffff603629f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int,
      QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
      #21 0x00007ffff603541a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int,
      QPainter*, QWidgetBackingStore*) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #22 0x00007ffff603629f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int,
      QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
      #23 0x00007ffff603541a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int,
      QPainter*, QWidgetBackingStore*) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #24 0x00007ffff603629f in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int,
      QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib64/qt4/libQtGui.so.4
      #25 0x00007ffff603541a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int,
      QPainter*, QWidgetBackingStore*) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #26 0x00007ffff61f8539 in QWidgetBackingStore::sync() () from /usr/lib64/qt4/libQtGui.so.4
      #27 0x00007ffff602b8d0 in QWidgetPrivate::syncBackingStore() () from /usr/lib64/qt4/libQtGui.so.4
      #28 0x00007ffff6038d02 in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #29 0x00007ffff63def7b in QMainWindow::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #30 0x00007ffff5fe6e34 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtGui.so.4
      #31 0x00007ffff5feba0a in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #32 0x00007ffff79ca876 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
      #33 0x00007ffff5629aac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #34 0x00007ffff562d2a5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #35 0x00007ffff65c1f9a in QGraphicsScenePrivate::_q_processDirtyItems() () from /usr/lib64/qt4/libQtGui.so.4
      #36 0x00007ffff65c239a in QGraphicsScene::qt_metacall(QMetaObject::Call, int, void**) () from
      /usr/lib64/qt4/libQtGui.so.4
      #37 0x00007ffff17a3e25 in Plasma::Corona::qt_metacall(QMetaObject::Call, int, void**) () from
      /usr/lib/libplasma.so.3
      #38 0x00007ffff6c5d490 in Context::ContextScene::qt_metacall (this=0x1d396f0,
      _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x216fc70)
      at /var/tmp/portage/media-sound/amarok-2.4.0/work/amarok-2.4.0_build/src/ContextScene.moc:70
      #39 0x00007ffff563ddda in QObject::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
      #40 0x00007ffff65ceed0 in QGraphicsScene::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #41 0x00007ffff5fe6e34 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtGui.so.4
      #42 0x00007ffff5feba0a in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
      #43 0x00007ffff79ca876 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
      #44 0x00007ffff5629aac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #45 0x00007ffff562d2a5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #46 0x00007ffff56549c3 in postEventSourceDispatch(_GSource*, int (void*), void*) () from
      /usr/lib64/qt4/libQtCore.so.4
      #47 0x00007fffee6b34d3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
      #48 0x00007fffee6b3cb0 in ?? () from /usr/lib/libglib-2.0.so.0
      #49 0x00007fffee6b3f4d in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
      #50 0x00007ffff5654b5f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from
      /usr/lib64/qt4/libQtCore.so.4
      #51 0x00007ffff608c39e in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
      from /usr/lib64/qt4/libQtGui.so.4
      #52 0x00007ffff5628e62 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from
      /usr/lib64/qt4/libQtCore.so.4
      #53 0x00007ffff56290ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
      /usr/lib64/qt4/libQtCore.so.4
      #54 0x00007ffff562d55b in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
      #55 0x0000000000407064 in main (argc=4, argv=0x7fffffffd5b8) at
      /var/tmp/portage/media-sound/amarok-2.4.0/work/amarok-2.4.0/src/main.cpp:268
      

      See also the corresponding old amarok bug:
      https://bugs.kde.org/show_bug.cgi?id=207382

      and the recent duplicates:
      https://bugs.kde.org/show_bug.cgi?id=266531
      https://bugs.kde.org/show_bug.cgi?id=266854

      Attachments

        1. QTBUG-18021.zip
          4 kB
          Mitch Curtis
        2. Screenshot_2020-08-24_12-22-55.png
          144 kB
          Matthieu Bruel
        3. Screenshot_2020-08-24_12-28-28.png
          144 kB
          Matthieu Bruel

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              Unassigned Unassigned
              abusenius Alex Busenius
              Votes:
              16 Vote for this issue
              Watchers:
              33 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes