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

Crash when using as-cast

    XMLWordPrintable

Details

    • dd806b30dc57e0c91dadf090cdd2d8f51a9f6f41 (qt/qtdeclarative/6.2), 0cee1a494 (tqtc/lts-5.15)

    Description

      With https://codereview.qt-project.org/c/qt/qtdeclarative/+/379334/16..17/src/quickdialogs2/quickdialogs2quickimpl/qml/%252BFusion/FolderBreadcrumbBar.qml I get a crash when running qtdeclarative/tests/manual/quickcontrols2/dialogs and opening a FolderDialog (use the Fusion style if you're not already on Linux: QT_QUICK_CONTROLS_STYLE=Fusion):

      12:16:19: Starting /home/mitch/dev/qt-dev-debug/qtdeclarative/tests/manual/quickcontrols2/dialogs/dialogs ...
      Binding on contentItem is not deferred as requested by the DeferredPropertyNames class info because it constitutes a group property.
      Binding on contentItem is not deferred as requested by the DeferredPropertyNames class info because one or more of its sub-objects contain an id.
      Binding on contentItem is not deferred as requested by the DeferredPropertyNames class info because one or more of its sub-objects contain an id.
      Binding on contentItem is not deferred as requested by the DeferredPropertyNames class info because one or more of its sub-objects contain an id.
      AddressSanitizer:DEADLYSIGNAL
      =================================================================
      ==59688==ERROR: AddressSanitizer: SEGV on unknown address 0x0000000001a8 (pc 0x7f8cbb2c35d9 bp 0x7ffefcfee7b0 sp 0x7ffefcfee560 T0)
      ==59688==The signal is caused by a READ memory access.
      ==59688==Hint: address points to the zero page.
          #0 0x7f8cbb2c35d8 in QV4::QQmlTypeWrapper::virtualInstanceOf(QV4::Object const*, QV4::Value const&) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmltypewrapper.cpp:418
          #1 0x7f8cbacce0f4 in QV4::Object::instanceOf(QV4::Value const&) const /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4object_p.h:370
          #2 0x7f8cbacae36e in QV4::Runtime::Instanceof::call(QV4::ExecutionEngine*, QV4::Value const&, QV4::Value const&) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4runtime.cpp:388
          #3 0x7f8cbacae690 in QV4::Runtime::As::call(QV4::ExecutionEngine*, QV4::Value const&, QV4::Value const&) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4runtime.cpp:400
          #4 0x7f8cbad84de7 in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:1381
          #5 0x7f8cbad6431d in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:555
          #6 0x7f8cbab3084e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:98
          #7 0x7f8cbafbf8ea in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:274
          #8 0x7f8cbae44091 in QQmlBinding::evaluate(bool*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlbinding.cpp:223
          #9 0x7f8cbae4eee2 in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlbinding.cpp:283
          #10 0x7f8cbae43d23 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlbinding.cpp:199
          #11 0x7f8cbae48163 in QQmlBinding::setEnabled(bool, QFlags<QQmlPropertyData::WriteFlag>) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlbinding.cpp:672
          #12 0x7f8cbb0776b6 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1397
          #13 0x7f8cbaeabc86 in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1042
          #14 0x7f8cbaeac8e9 in QQmlComponentPrivate::completeCreate() /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1136
          #15 0x7f8cbaeac5b7 in QQmlComponent::completeCreate() /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1123
          #16 0x7f8cbaeaa05b in QQmlComponent::create(QQmlContext*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:863
          #17 0x7f8ca6dc5104 in QQuickPlatformFolderDialog::QQuickPlatformFolderDialog(QObject*) /home/mitch/dev/qt-dev/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfolderdialog.cpp:82
          #18 0x7f8ca6d7d52c in QQuickDialogImplFactory::createPlatformDialogHelper(QQuickDialogType, QObject*) /home/mitch/dev/qt-dev/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory.cpp:67
          #19 0x7f8ca6fef6aa in QQuickAbstractDialog::create() /home/mitch/dev/qt-dev/qtdeclarative/src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp:439
          #20 0x7f8ca6fedf50 in QQuickAbstractDialog::open() /home/mitch/dev/qt-dev/qtdeclarative/src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp:323
          #21 0x7f8ca6fc0a8e in QQuickAbstractDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/mitch/dev/qt-dev-debug/qtdeclarative/src/quickdialogs2/quickdialogs2/QuickDialogs2_autogen/EWIEGA46WW/moc_qquickabstractdialog_p.cpp:171
          #22 0x7f8ca6fc2159 in QQuickAbstractDialog::qt_metacall(QMetaObject::Call, int, void**) /home/mitch/dev/qt-dev-debug/qtdeclarative/src/quickdialogs2/quickdialogs2/QuickDialogs2_autogen/EWIEGA46WW/moc_qquickabstractdialog_p.cpp:313
          #23 0x7f8ca6fc5f09 in QQuickFolderDialog::qt_metacall(QMetaObject::Call, int, void**) /home/mitch/dev/qt-dev-debug/qtdeclarative/src/quickdialogs2/quickdialogs2/QuickDialogs2_autogen/EWIEGA46WW/moc_qquickfolderdialog_p.cpp:255
          #24 0x7f8cb737bf1a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qmetaobject.cpp:321
          #25 0x7f8cbb0c5e3d in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:50
          #26 0x7f8cbac1c732 in CallMethod /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1444
          #27 0x7f8cbac1f35b in CallPrecise /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:1692
          #28 0x7f8cbac25ea9 in operator() /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2364
          #29 0x7f8cbac26170 in operator()<QV4::QObjectMethod::callInternal(const QV4::Value*, const QV4::Value*, int) const::<lambda()> > /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2342
          #30 0x7f8cbac26bfc in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2364
          #31 0x7f8cbac255b9 in QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2301
          #32 0x7f8cba9a3f6d in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const /home/mitch/dev/qt-dev-debug/qtbase/include/QtQml/6.3.0/QtQml/private/../../../../../../../qt-dev/qtdeclarative/src/qml/jsruntime/qv4functionobject_p.h:205
          #33 0x7f8cbad7267d in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:873
          #34 0x7f8cbad6431d in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:555
          #35 0x7f8cbab3084e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:98
          #36 0x7f8cbab30133 in operator() /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:67
          #37 0x7f8cbab32c68 in convertAndCall<QV4::Function::call(QObject*, void**, const QMetaType*, int, QV4::ExecutionContext*)::<lambda(const QV4::Value*, const QV4::Value*, int)> > /home/mitch/dev/qt-dev-debug/qtbase/include/QtQml/6.3.0/QtQml/private/../../../../../../../qt-dev/qtdeclarative/src/qml/jsruntime/qv4jscall_p.h:229
          #38 0x7f8cbab30286 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:64
          #39 0x7f8cbafbfd04 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:306
          #40 0x7f8cbae80076 in QQmlBoundSignalExpression::evaluate(void**) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:235
          #41 0x7f8cbae80c20 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlboundsignal.cpp:350
          #42 0x7f8cbb0609a2 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlnotifier.cpp:104
          #43 0x7f8cbaefd31c in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmlengine.cpp:405
          #44 0x7f8cb749e4ee in void doActivate<false>(QObject*, int, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobject.cpp:3806
          #45 0x7f8cb748af36 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qobject.cpp:3974
          #46 0x7f8cb62247b8 in QQuickAbstractButton::clicked() /home/mitch/dev/qt-dev-debug/qtdeclarative/src/quicktemplates2/QuickTemplates2_autogen/include/moc_qquickabstractbutton_p.cpp:599
          #47 0x7f8cb621b733 in QQuickAbstractButtonPrivate::trigger(bool) /home/mitch/dev/qt-dev/qtdeclarative/src/quicktemplates2/qquickabstractbutton.cpp:368
          #48 0x7f8cb6219eb4 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&, unsigned long) /home/mitch/dev/qt-dev/qtdeclarative/src/quicktemplates2/qquickabstractbutton.cpp:191
          #49 0x7f8cb62d720d in QQuickControl::mouseReleaseEvent(QMouseEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quicktemplates2/qquickcontrol.cpp:1984
          #50 0x7f8cb3133fa6 in QQuickItem::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickitem.cpp:8741
          #51 0x7f8cb621fcb9 in QQuickAbstractButton::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quicktemplates2/qquickabstractbutton.cpp:1072
          #52 0x7f8cb733f919 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1230
          #53 0x7f8cb733f066 in doNotify /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1159
          #54 0x7f8cb733ef11 in QCoreApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142
          #55 0x7f8cb8a1b746 in QGuiApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1930
          #56 0x7f8cb733ecfd in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1063
          #57 0x7f8cb734057a in QCoreApplication::sendEvent(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1479
          #58 0x7f8cb37904dd in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1973
          #59 0x7f8cb378e09d in QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1817
          #60 0x7f8cb378c5e3 in QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1692
          #61 0x7f8cb378815d in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:1465
          #62 0x7f8cb377e298 in QQuickDeliveryAgent::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/util/qquickdeliveryagent.cpp:706
          #63 0x7f8cb341f569 in QQuickWindow::event(QEvent*) /home/mitch/dev/qt-dev/qtdeclarative/src/quick/items/qquickwindow.cpp:1482
          #64 0x7f8cb733f919 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1230
          #65 0x7f8cb733f066 in doNotify /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1159
          #66 0x7f8cb733ef11 in QCoreApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142
          #67 0x7f8cb8a1b746 in QGuiApplication::notify(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1930
          #68 0x7f8cb733ecfd in QCoreApplication::notifyInternal2(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1063
          #69 0x7f8cb734063a in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1493
          #70 0x7f8cb8a1dcbb in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:2248
          #71 0x7f8cb8a1c3a9 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1999
          #72 0x7f8cb8b5f480 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1134
          #73 0x7f8cacbed1f3 in xcbSourceDispatch /home/mitch/dev/qt-dev/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:93
          #74 0x7f8cb54a617c in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5217c)
          #75 0x7f8cb54a63ff  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x523ff)
          #76 0x7f8cb54a64a2 in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x524a2)
          #77 0x7f8cb7cd6138 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:429
          #78 0x7f8cacbed7a0 in QXcbGlibEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:132
          #79 0x7f8cb73706f0 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventloop.cpp:136
          #80 0x7f8cb73710f1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qeventloop.cpp:218
          #81 0x7f8cb73400cc in QCoreApplication::exec() /home/mitch/dev/qt-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1384
          #82 0x7f8cb8a1b557 in QGuiApplication::exec() /home/mitch/dev/qt-dev/qtbase/src/gui/kernel/qguiapplication.cpp:1862
          #83 0x557b153b53d4 in main /home/mitch/dev/qt-dev/qtdeclarative/tests/manual/quickcontrols2/dialogs/dialogs.cpp:79
          #84 0x7f8cb6bb70b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
          #85 0x557b153b488d in _start (/home/mitch/dev/qt-dev-debug/qtdeclarative/tests/manual/quickcontrols2/dialogs/dialogs+0x888d)
      
      AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV /home/mitch/dev/qt-dev/qtdeclarative/src/qml/qml/qqmltypewrapper.cpp:418 in QV4::QQmlTypeWrapper::virtualInstanceOf(QV4::Object const*, QV4::Value const&)
      ==59688==ABORTING
      12:16:24: /home/mitch/dev/qt-dev-debug/qtdeclarative/tests/manual/quickcontrols2/dialogs/dialogs exited with code 1
      
      

      Attachments

        Issue Links

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

          Activity

            People

              ulherman Ulf Hermann
              mitch_curtis Mitch Curtis
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes