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

Crash when scrolling ScrollView with zero-sized item

    XMLWordPrintable

    Details

    • Commits:
      e7df2279bf5519703fd0b853abaa23947a599920 (qt/qtquickcontrols2/dev) 16d946701d7fc38fce264ffdb4d5443ffcb50514 (qt/tqtc-qtquickcontrols2/5.15) a29d29c020c1d6f7fa5efbb80aa634f43202cd96 (qt/qtquickcontrols2/6.0)

      Description

      import QtQuick
      import QtQuick.Controls
      
      ApplicationWindow {
          width: 300
          height: 300
          visible: true
      
          ScrollView {
              anchors.fill: parent
      
              contentItem: Item {}
          }
      }
      
      09:35:50: Starting /home/mitch/dev/temp/quick-qmake-qt_dev_debug-Debug/quick-qmake ...
      QML debugging is enabled. Only use this in a safe environment.
      AddressSanitizer:DEADLYSIGNAL
      =================================================================
      ==96796==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7f8bd597854f bp 0x7fffb0ccfc50 sp 0x7fffb0ccfc40 T0)
      ==96796==The signal is caused by a READ memory access.
      ==96796==Hint: address points to the zero page.
          #0 0x7f8bd597854e in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get() const /home/mitch/dev/qt-dev/qtbase/src/corelib/tools/qscopedpointer.h:147
          #1 0x7f8bd5987880 in decltype (({parm#1}.get)()) qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) /home/mitch/dev/qt-dev/qtbase/src/corelib/global/qglobal.h:1212
          #2 0x7f8bd59d3a99 in QQuickItem::d_func() const /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickitem.h:470
          #3 0x7f8bd5a6f98d in QQuickItem::height() const /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickitem.cpp:6980
          #4 0x7f8bd46a9ad7 in QQuickScrollBarAttachedPrivate::scrollVertical() /home/mitch/dev/qt-dev/qtquickcontrols2/src/quicktemplates2/qquickscrollbar.cpp:1031
          #5 0x7f8bd46ae26f in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (QQuickScrollBarAttachedPrivate::*)()>::call(void (QQuickScrollBarAttachedPrivate::*)(), QQuickScrollBarAttachedPrivate*, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobjectdefs_impl.h:152
          #6 0x7f8bd46addcb in void QtPrivate::FunctionPointer<void (QQuickScrollBarAttachedPrivate::*)()>::call<QtPrivate::List<>, void>(void (QQuickScrollBarAttachedPrivate::*)(), QQuickScrollBarAttachedPrivate*, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobjectdefs_impl.h:185
          #7 0x7f8bd46adc20 in QtPrivate::QPrivateSlotObject<void (QQuickScrollBarAttachedPrivate::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobject_p.h:446
          #8 0x7f8be39950ef in QtPrivate::QSlotObjectBase::call(QObject*, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobjectdefs_impl.h:375
          #9 0x7f8be3a8dc60 in void doActivate<false>(QObject*, int, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobject.cpp:3822
          #10 0x7f8be3a7dc0c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobject.cpp:3882
          #11 0x7f8bd44ce51e in QQuickScrollBar::positionChanged() src/quicktemplates2/QuickTemplates2_autogen/EWIEGA46WW/moc_qquickscrollbar_p.cpp:455
          #12 0x7f8bd46a51db in QQuickScrollBar::setPosition(double) /home/mitch/dev/qt-dev/qtquickcontrols2/src/quicktemplates2/qquickscrollbar.cpp:469
          #13 0x7f8bd46a3af2 in QQuickScrollBarPrivate::handleMove(QPointF const&) /home/mitch/dev/qt-dev/qtquickcontrols2/src/quicktemplates2/qquickscrollbar.cpp:331
          #14 0x7f8bd45ba6d4 in QQuickControl::mouseMoveEvent(QMouseEvent*) /home/mitch/dev/qt-dev/qtquickcontrols2/src/quicktemplates2/qquickcontrol.cpp:1977
          #15 0x7f8bd5a789b7 in QQuickItem::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickitem.cpp:8334
          #16 0x7f8be39479e7 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1200
          #17 0x7f8be3947135 in doNotify /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1129
          #18 0x7f8be3947007 in QCoreApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1115
          #19 0x7f8be63459bc in QGuiApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1954
          #20 0x7f8be3946e3b in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1039
          #21 0x7f8be39485f1 in QCoreApplication::sendEvent(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1447
          #22 0x7f8bd605308d in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1823
          #23 0x7f8bd6050f4d in QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1677
          #24 0x7f8bd604f37a in QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1545
          #25 0x7f8bd604bfd3 in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1365
          #26 0x7f8bd60415f7 in QQuickDeliveryAgent::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:688
          #27 0x7f8bd5d23116 in QQuickWindow::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:1409
          #28 0x7f8be39479e7 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1200
          #29 0x7f8be3947135 in doNotify /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1129
          #30 0x7f8be3947007 in QCoreApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1115
          #31 0x7f8be63459bc in QGuiApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1954
          #32 0x7f8be3946e3b in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1039
          #33 0x7f8be3948661 in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1459
          #34 0x7f8be6347fe3 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:2276
          #35 0x7f8be6346705 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:2027
          #36 0x7f8be646cc94 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1158
          #37 0x7f8bdc221111 in xcbSourceDispatch /home/mitch/dev/qt-dev/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:93
          #38 0x7f8be2cde17c in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5217c)
          #39 0x7f8be2cde3ff  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x523ff)
          #40 0x7f8be2cde4a2 in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x524a2)
          #41 0x7f8be4160e7d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:429
          #42 0x7f8bdc2216be in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:132
          #43 0x7f8be3975d38 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventloop.cpp:139
          #44 0x7f8be3976739 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventloop.cpp:232
          #45 0x7f8be3948192 in QCoreApplication::exec() /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1354
          #46 0x7f8be63457cd in QGuiApplication::exec() /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1886
          #47 0x5636e009e295 in main ../quick-qmake/main.cpp:43
          #48 0x7f8be31160b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
          #49 0x5636e009dc0d in _start (/home/mitch/dev/temp/quick-qmake-qt_dev_debug-Debug/quick-qmake+0x6c0d)
      
      AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV /home/mitch/dev/qt-dev/qtbase/src/corelib/tools/qscopedpointer.h:147 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get() const
      ==96796==ABORTING
      09:35:55: /home/mitch/dev/temp/quick-qmake-qt_dev_debug-Debug/quick-qmake exited with code 1
      

        Attachments

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

          Activity

            People

            Assignee:
            mitch_curtis Mitch Curtis
            Reporter:
            mitch_curtis Mitch Curtis
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes