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

Segmentation fault when scrolling TableView quickly

    XMLWordPrintable

Details

    Description

      I've created a QML TableView with two columns and about 430 rows.
      This scrolls quickly on Mac OSX using the touchpad and two-finger slide to scroll up and down vertically.

      However, if I scroll too quickly up and down, the application seg faults. This appears to be deep within the "wheel event" handler.

      A backtrace from lldb is shown below. The original QML file is attached. I am updating the root.parameter_model text property from python. However, the crash happens long after the model has been updated.

       thread #1: tid = 0x4be5e1, 0x0000000104ac21a1 QtQml`___lldb_unnamed_symbol2795$$QtQml + 33, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
        * frame #0: 0x0000000104ac21a1 QtQml`___lldb_unnamed_symbol2795$$QtQml + 33
          frame #1: 0x0000000104b393a5 QtQml`QV4::QObjectWrapper::getQmlProperty(QQmlContextData*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*, bool) const + 165
          frame #2: 0x0000000104b3b517 QtQml`QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*) + 375
          frame #3: 0x0000000104be0d03 QtQml`QV4::QmlContextWrapper::get(QV4::Managed const*, QV4::String*, bool*) + 787
          frame #4: 0x0000000104ac2877 QtQml`QV4::ExecutionContext::getProperty(QV4::String*) + 679
          frame #5: 0x0000000104b518fb QtQml`QV4::Runtime::getActivationProperty(QV4::ExecutionEngine*, int) + 59
          frame #6: 0x000000011112384e
          frame #7: 0x0000000104ae2422 QtQml`___lldb_unnamed_symbol3077$$QtQml + 626
          frame #8: 0x0000000104bd6d81 QtQml`QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) + 689
          frame #9: 0x0000000104b80e6e QtQml`QQmlBoundSignalExpression::evaluate(void**) + 1086
          frame #10: 0x0000000104b815ad QtQml`___lldb_unnamed_symbol4317$$QtQml + 445
          frame #11: 0x0000000104bb8915 QtQml`QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 741
          frame #12: 0x00000001039930f9 QtCore`QMetaObject::activate(QObject*, int, int, void**) + 121
          frame #13: 0x00000001047be40a QtQuick`___lldb_unnamed_symbol5083$$QtQuick + 26
          frame #14: 0x0000000104771e66 QtQuick`___lldb_unnamed_symbol3961$$QtQuick + 38
          frame #15: 0x00000001046d1e44 QtQuick`QQuickItem::geometryChanged(QRectF const&, QRectF const&) + 564
          frame #16: 0x00000001046d75ee QtQuick`QQuickItem::setY(double) + 158
          frame #17: 0x000000010482fae7 QtQuick`QQuickFlickable::qt_metacall(QMetaObject::Call, int, void**) + 71
          frame #18: 0x00000001048416b8 QtQuick`QQuickItemView::qt_metacall(QMetaObject::Call, int, void**) + 24
          frame #19: 0x0000000104830c08 QtQuick`___lldb_unnamed_symbol6585$$QtQuick + 24
          frame #20: 0x0000000104b3c191 QtQml`QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) + 2817
          frame #21: 0x0000000104b3d2da QtQml`QV4::QObjectWrapper::put(QV4::Managed*, QV4::String*, QV4::Value const&) + 314
          frame #22: 0x0000000104b50e68 QtQml`QV4::Runtime::setProperty(QV4::ExecutionEngine*, QV4::Value const&, int, QV4::Value const&) + 104
          frame #23: 0x0000000111125d1b
          frame #24: 0x0000000104ae2422 QtQml`___lldb_unnamed_symbol3077$$QtQml + 626
          frame #25: 0x0000000104bd6d81 QtQml`QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) + 689
          frame #26: 0x0000000104b80e6e QtQml`QQmlBoundSignalExpression::evaluate(void**) + 1086
          frame #27: 0x0000000104b815ad QtQml`___lldb_unnamed_symbol4317$$QtQml + 445
          frame #28: 0x0000000104bb8915 QtQml`QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 741
          frame #29: 0x00000001039930f9 QtCore`QMetaObject::activate(QObject*, int, int, void**) + 121
          frame #30: 0x000000011103a2f0 libqtquickcontrolsplugin.dylib`___lldb_unnamed_symbol602$$libqtquickcontrolsplugin.dylib + 592
          frame #31: 0x00000001046d93aa QtQuick`QQuickItem::event(QEvent*) + 378
          frame #32: 0x0000000102bf460d QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
          frame #33: 0x0000000102bf59b1 QtWidgets`QApplication::notify(QObject*, QEvent*) + 369
          frame #34: 0x000000010264ba82 QtWidgets.so`sipQApplication::notify(QObject*, QEvent*) + 114
          frame #35: 0x0000000103961f84 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
          frame #36: 0x00000001046e5411 QtQuick`QQuickWindow::sendEvent(QQuickItem*, QEvent*) + 97
          frame #37: 0x00000001046ebd66 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 422
          frame #38: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #39: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #40: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #41: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #42: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #43: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #44: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #45: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #46: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #47: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #48: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #49: 0x00000001046ebcb6 QtQuick`QQuickWindowPrivate::deliverWheelEvent(QQuickItem*, QWheelEvent*) + 246
          frame #50: 0x00000001046ec0d9 QtQuick`QQuickWindow::wheelEvent(QWheelEvent*) + 761
          frame #51: 0x00000001044f675a QtQuick.so`sipQQuickView::wheelEvent(QWheelEvent*) + 106
          frame #52: 0x0000000103274421 QtGui`QWindow::event(QEvent*) + 561
          frame #53: 0x00000001046e8e59 QtQuick`QQuickWindow::event(QEvent*) + 681
          frame #54: 0x00000001044f71ba QtQuick.so`sipQQuickView::event(QEvent*) + 106
          frame #55: 0x0000000102bf460d QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 301
          frame #56: 0x0000000102bf59b1 QtWidgets`QApplication::notify(QObject*, QEvent*) + 369
          frame #57: 0x000000010264ba82 QtWidgets.so`sipQApplication::notify(QObject*, QEvent*) + 114
          frame #58: 0x0000000103961f84 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 164
          frame #59: 0x00000001032664ee QtGui`QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent*) + 846
          frame #60: 0x000000010324ea9b QtGui`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 155
          frame #61: 0x000000010897f6be libqcocoa.dylib`___lldb_unnamed_symbol465$$libqcocoa.dylib + 1774
          frame #62: 0x0000000103dce887 QtCore.so`meth_QCoreApplication_processEvents(_object*, _object*, _object*) + 151
          frame #63: 0x000000010062c86a Python`PyEval_EvalFrameEx + 26934
          frame #64: 0x00000001006304f1 Python`fast_function + 264
          frame #65: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #66: 0x00000001006304f1 Python`fast_function + 264
          frame #67: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #68: 0x00000001006304f1 Python`fast_function + 264
          frame #69: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #70: 0x00000001006304f1 Python`fast_function + 264
          frame #71: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #72: 0x00000001006304f1 Python`fast_function + 264
          frame #73: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #74: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #75: 0x00000001006256e7 Python`PyEval_EvalCode + 48
          frame #76: 0x0000000100649068 Python`run_mod + 53
          frame #77: 0x000000010064910b Python`PyRun_FileExFlags + 133
          frame #78: 0x000000010062203b Python`builtin_execfile + 507
          frame #79: 0x000000010062c86a Python`PyEval_EvalFrameEx + 26934
          frame #80: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #81: 0x00000001006256e7 Python`PyEval_EvalCode + 48
          frame #82: 0x0000000100649068 Python`run_mod + 53
          frame #83: 0x0000000100649225 Python`PyRun_StringFlags + 109
          frame #84: 0x000000010062632d Python`PyEval_EvalFrameEx + 1017
          frame #85: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #86: 0x000000010063045e Python`fast_function + 117
          frame #87: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #88: 0x00000001006304f1 Python`fast_function + 264
          frame #89: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #90: 0x00000001006304f1 Python`fast_function + 264
          frame #91: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #92: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #93: 0x00000001006261f9 Python`PyEval_EvalFrameEx + 709
          frame #94: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #95: 0x000000010063045e Python`fast_function + 117
          frame #96: 0x000000010062c78f Python`PyEval_EvalFrameEx + 26715
          frame #97: 0x0000000100625d3e Python`PyEval_EvalCodeEx + 1617
          frame #98: 0x00000001005cac73 Python`function_call + 350
          frame #99: 0x00000001005ac921 Python`PyObject_Call + 99
          frame #100: 0x000000010065a605 Python`RunModule + 113
          frame #101: 0x000000010065a11d Python`Py_Main + 2289
          frame #102: 0x00007fff9c032255 libdyld.dylib`start + 1
      

      Attachments

        1. ParamEditorRect.qml
          71 kB
          Todd Stellanova
        2. ParamEditorRect.qml
          4 kB
          Todd Stellanova
        3. wrap_test.qml
          3 kB
          Todd Stellanova
        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
            thrusty-qt Todd Stellanova
            Votes:
            4 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes