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

Segmentation Fault When Scrolling Window Contents

    XMLWordPrintable

Details

    • Linux/X11
    • deac052a40c93633041da058d5c73c9e91aa76c7

    Description

      After 3c662bf1 [1], scrolling window contents of the download manager of the Falkon web browser can lead to a segmentation fault. Unfortunately, I've not been able to pinpoint what change exactly causes the issue, and the changes in the aforementioned commit seem largely unrelated, but 2ea3e133 [2] seems to be the last good commit.

      The segmentation fault might be a side-effect, or at least related to a different problem, which will be described during the following steps (the no content being rendered).

      Steps to reproduce:

      1. Start a download to have something in the download manager window.
      2. Open the download manager window.
      3. Close the download manager window.
      4. Open the download manager window.
      5. Observe no content/background being rendered in the download manager window.
      6. Click on the (invisible) 'Clear' button which makes the content visible again.
      7. Resize the window so that the scrollbars will appear.
      8. Scroll the window contents.

      Thread 1 (Thread 0x7fffe71a6800 (LWP 17688)):
      #0  QWidgetBackingStore::markDirtyOnScreen (this=this@entry=0x55555935a0f0, region=..., widget=widget@entry=0x55555932bca0, topLevelOffset=...) at [...]/src/widgets/kernel/qwidgetbackingstore.cpp:666
      #1  0x00007ffff76961db in QWidgetPrivate::scrollRect (this=this@entry=0x55555981bb30, rect=..., dx=dx@entry=0, dy=dy@entry=-1) at [...]/src/widgets/kernel/qwidgetbackingstore.cpp:938
      #2  0x00007ffff76b44fd in QWidgetPrivate::scroll_sys (this=this@entry=0x55555981bb30, dx=dx@entry=0, dy=dy@entry=-1) at [...]/src/corelib/tools/qrect.h:184
      #3  0x00007ffff76b467c in QWidget::scroll (this=0x55555932bca0, dx=dx@entry=0, dy=dy@entry=-1) at [...]/src/widgets/kernel/qwidget.cpp:10976
      #4  0x00007ffff791296c in QAbstractItemViewPrivate::scrollContentsBy (dy=-1, dx=0, this=0x555559716120) at [...]/src/widgets/itemviews/qabstractitemview_p.h:247
      #5  QCommonListViewBase::scrollContentsBy (this=this@entry=0x555559343a80, dx=dx@entry=0, dy=dy@entry=-1) at [...]/src/widgets/itemviews/qlistview.cpp:1996
      #6  0x00007ffff7912f64 in QListModeViewBase::scrollContentsBy (this=0x555559343a80, dx=0, dy=-1, scrollElasticBand=<optimized out>) at [...]/src/widgets/itemviews/qlistview.cpp:2389
      #7  0x00007ffff7912644 in QListView::scrollContentsBy (this=<optimized out>, dx=0, dy=-1) at [...]/src/widgets/itemviews/qlistview.cpp:704
      #8  0x00007ffff7770f44 in QAbstractScrollAreaPrivate::_q_vslide (this=0x555559716120, y=<optimized out>) at [...]/src/widgets/widgets/qabstractscrollarea.cpp:1542
      #9  0x00007ffff7770fe0 in QAbstractScrollArea::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at [...]/src/widgets/widgets/qabstractscrollarea.h:139
      #10 0x00007ffff72983b0 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib64/libQt5Core.so.5
      #11 0x00007ffff7776016 in QAbstractSlider::valueChanged (this=this@entry=0x5555593364c0, _t1=<optimized out>, _t1@entry=1) at .moc/moc_qabstractslider.cpp:309
      #12 0x00007ffff7776573 in QAbstractSlider::setValue (this=this@entry=0x5555593364c0, value=1) at [...]/src/widgets/widgets/qabstractslider.cpp:546
      #13 0x00007ffff7776774 in QAbstractSlider::triggerAction (this=this@entry=0x5555593364c0, action=action@entry=QAbstractSlider::SliderMove) at [...]/src/widgets/widgets/qabstractslider.cpp:635
      #14 0x00007ffff77770a8 in QAbstractSliderPrivate::scrollByDelta (this=this@entry=0x5555597ff170, orientation=<optimized out>, modifiers=..., delta=<optimized out>) at [...]/src/widgets/widgets/qabstractslider.cpp:750
      #15 0x00007ffff781827f in QScrollBar::wheelEvent (this=<optimized out>, event=0x7fffffffc790) at /usr/include/qt5/QtGui/qevent.h:207
      #16 0x00007ffff76c27f0 in QWidget::event (this=this@entry=0x5555593364c0, event=event@entry=0x7fffffffc790) at [...]/src/widgets/kernel/qwidget.cpp:8955
      #17 0x00007ffff77771a1 in QAbstractSlider::event (this=this@entry=0x5555593364c0, e=e@entry=0x7fffffffc790) at [...]/src/widgets/widgets/qabstractslider.cpp:955
      #18 0x00007ffff781a1c6 in QScrollBar::event (this=0x5555593364c0, event=0x7fffffffc790) at [...]/src/widgets/widgets/qscrollbar.cpp:490
      #19 0x00007ffff76825a8 in QApplicationPrivate::notify_helper (this=this@entry=0x555555578160, receiver=receiver@entry=0x5555593364c0, e=e@entry=0x7fffffffc790) at [...]/src/widgets/kernel/qapplication.cpp:3740
      #20 0x00007ffff768b92c in QApplication::notify (this=<optimized out>, receiver=0x5555593364c0, e=0x7fffffffcd40) at [...]/src/widgets/kernel/qapplication.cpp:3293
      #21 0x00007ffff726ba48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
      #22 0x00007ffff7920790 in QListView::wheelEvent (this=<optimized out>, e=0x7fffffffcd40) at [...]/src/widgets/itemviews/qlistview.cpp:827
      #23 0x00007ffff76c27f0 in QWidget::event (this=this@entry=0x55555932b0e0, event=event@entry=0x7fffffffcd40) at [...]/src/widgets/kernel/qwidget.cpp:8955
      #24 0x00007ffff776e90f in QFrame::event (this=this@entry=0x55555932b0e0, e=e@entry=0x7fffffffcd40) at [...]/src/widgets/widgets/qframe.cpp:550
      #25 0x00007ffff7771335 in QAbstractScrollArea::viewportEvent (this=this@entry=0x55555932b0e0, e=e@entry=0x7fffffffcd40) at [...]/src/widgets/widgets/qabstractscrollarea.cpp:1221
      #26 0x00007ffff78e59fb in QAbstractItemView::viewportEvent (this=0x55555932b0e0, event=0x7fffffffcd40) at [...]/src/widgets/itemviews/qabstractitemview.cpp:1753
      #27 0x00007ffff7771be9 in QAbstractScrollAreaPrivate::viewportEvent (event=<optimized out>, this=<optimized out>) at [...]/src/widgets/widgets/qabstractscrollarea_p.h:113
      #28 QAbstractScrollAreaFilter::eventFilter (this=<optimized out>, o=<optimized out>, e=<optimized out>) at [...]/src/widgets/widgets/qabstractscrollarea_p.h:129
      #29 0x00007ffff726b894 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
      #30 0x00007ffff7682598 in QApplicationPrivate::notify_helper (this=this@entry=0x555555578160, receiver=receiver@entry=0x55555932bca0, e=e@entry=0x7fffffffcd40) at [...]/src/widgets/kernel/qapplication.cpp:3734
      #31 0x00007ffff768b92c in QApplication::notify (this=<optimized out>, receiver=0x5555595b2180, e=0x7fffffffcf10) at [...]/src/widgets/kernel/qapplication.cpp:3293
      #32 0x00007ffff726ba48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
      #33 0x00007ffff76dd9b8 in QWidgetWindow::handleWheelEvent (this=this@entry=0x5555593662e0, event=event@entry=0x7fffffffd2a0) at [...]/src/widgets/kernel/qwidgetwindow.cpp:848
      #34 0x00007ffff76def85 in QWidgetWindow::event (this=0x5555593662e0, event=0x7fffffffd2a0) at [...]/src/widgets/kernel/qwidgetwindow.cpp:308
      #35 0x00007ffff76825a8 in QApplicationPrivate::notify_helper (this=this@entry=0x555555578160, receiver=receiver@entry=0x5555593662e0, e=e@entry=0x7fffffffd2a0) at [...]/src/widgets/kernel/qapplication.cpp:3740
      #36 0x00007ffff768ab55 in QApplication::notify (this=0x7fffffffd670, receiver=0x5555593662e0, e=0x7fffffffd2a0) at [...]/src/widgets/kernel/qapplication.cpp:3096
      #37 0x00007ffff726ba48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
      #38 0x00007fffee245a77 in QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent*) () from /usr/lib64/libQt5Gui.so.5
      #39 0x00007fffee24afa7 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib64/libQt5Gui.so.5
      #40 0x00007fffee2276aa in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Gui.so.5
      #41 0x00007fffe66911fa in ?? () from /usr/lib64/libQt5XcbQpa.so.5
      #42 0x00007fffed97480f in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
      #43 0x00007fffed974ac8 in ?? () from /usr/lib64/libglib-2.0.so.0
      #44 0x00007fffed974b5c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
      #45 0x00007ffff72c5307 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
      #46 0x00007ffff726a88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
      #47 0x00007ffff72728ef in QCoreApplication::exec() () from /usr/lib64/libQt5Core.so.5
      #48 0x00007ffff7682513 in QApplication::exec () at [...]/src/widgets/kernel/qapplication.cpp:2896
      #49 0x0000555555556941 in main (argc=<optimized out>, argv=<optimized out>) at [...]/src/main/main.cpp:74
      

      1. https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.13&id=3c662bf1
      2. https://code.qt.io/cgit/qt/qtbase.git/commit/?h=5.13&id=2ea3e133

      Attachments

        Issue Links

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

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              chiitoo chiitoo
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes