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

Crash in webOS emulator with recent meta-qt6

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11, webOS
    • Commits:
      565864090d4ca38768c2268ffd265d2f4b49d1b0 (qt/qtbase/dev) b942d3b971e769492265bee8cbcc16a8d94144d9 (qt/qtbase/6.1)

      Description

      A crash from webOS compositor is observed in webOS OSE emulator(QEMU x86). It happens after we rebased meta-qt6 from 9923954 to 6bc0126. There was no issue until meta-qt6 9923954.

       

      Backtrace:

      (gdb) bt
      #0  QV4::Scope::Scope (e=0x0, this=<synthetic pointer>) at include/QtQml/6.2.0/QtQml/private/../../../../../../git/src/qml/jsruntime/qv4scopedvalue_p.h:97
      #1  QQmlPropertyBinding::evaluate (this=0x6a44d8, metaType=..., dataPtr=0xbfacd43c) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlpropertybinding.cpp:206
      #2  0xb5e2f8a4 in QQmlPropertyBinding::doEvaluate (metaType=..., dataPtr=0xbfacd43c, f=0x6a4540) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlpropertybinding_p.h:131
      #3  0xb69585d9 in QObjectCompatProperty<QObjectPrivate::ExtraData, QString, &QObjectPrivate::ExtraData::_qt_property_objectName_offset, &QObjectPrivate::ExtraData::setObjectNameForwarder, &QObjectPrivate::ExtraData::nameChangedForwarder>::bindingWrapper (type=..., dataPtr=0x728b60,
          binding=...) at include/QtCore/../../../git/src/corelib/tools/qarraydatapointer.h:63
      #4  0xb695c184 in QPropertyBindingPrivate::evaluateRecursive (this=<optimized out>) at /usr/src/debug/qtbase/6.2.0-r0/git/src/corelib/kernel/qproperty.cpp:305
      #5  0xb695c7c8 in QtPrivate::QPropertyBindingData::setBinding (this=0x728384, binding=..., propertyDataPtr=0x728b60, staticObserverCallback=<optimized out>, guardCallback=<optimized out>) at /usr/src/debug/qtbase/6.2.0-r0/git/src/corelib/kernel/qproperty.cpp:445
      #6  0xb69466ce in QObjectCompatProperty<QObjectPrivate::ExtraData, QString, &QObjectPrivate::ExtraData::_qt_property_objectName_offset, &QObjectPrivate::ExtraData::setObjectNameForwarder, &QObjectPrivate::ExtraData::nameChangedForwarder>::setBinding (newBinding=..., this=0x728b60)
          at include/QtCore/../../../git/src/corelib/kernel/qproperty.h:871
      #7  QtPrivate::QBindableInterfaceForProperty<QObjectCompatProperty<QObjectPrivate::ExtraData, QString, QObjectPrivate::ExtraData::_qt_property_objectName_offset, &QObjectPrivate::ExtraData::setObjectNameForwarder, &QObjectPrivate::ExtraData::nameChangedForwarder>, void>::<lambda(QUntypedPropertyData*, const QUntypedPropertyBinding&)>::operator() (this=0x0, binding=..., d=0x728b60) at include/QtCore/../../../git/src/corelib/kernel/qproperty.h:545
      #8  QtPrivate::QBindableInterfaceForProperty<QObjectCompatProperty<QObjectPrivate::ExtraData, QString, QObjectPrivate::ExtraData::_qt_property_objectName_offset, &QObjectPrivate::ExtraData::setObjectNameForwarder, &QObjectPrivate::ExtraData::nameChangedForwarder>, void>::<lambda(QUntypedPropertyData*, const QUntypedPropertyBinding&)>::_FUN(QUntypedPropertyData *, const QUntypedPropertyBinding &) () at include/QtCore/../../../git/src/corelib/kernel/qproperty.h:544
      #9  0xb5e0b980 in QUntypedBindable::setBinding (binding=..., this=0xbfacd624) at /usr/include/QtCore/qproperty.h:630
      #10 QUntypedBindable::setBinding (binding=..., this=0xbfacd624) at /usr/include/QtCore/qproperty.h:624
      #11 QQmlObjectCreator::finalize (this=0x685b00, interrupt=...) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlobjectcreator.cpp:1427
      #12 0xb5d99077 in QQmlComponentPrivate::complete (state=0x66b2bc, enginePriv=0x553a10) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlcomponent.cpp:997
      #13 QQmlComponentPrivate::complete (enginePriv=0x553a10, state=0x66b2bc) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlcomponent.cpp:993
      #14 0xb5d9cfed in QQmlComponentPrivate::completeCreate (this=0x66b260) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlcomponent.cpp:1089
      #15 0xb5d9d19b in QQmlComponent::completeCreate (this=0x694af0) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlcomponent.cpp:1076
      #16 0xb5d98906 in QQmlComponent::create (this=0x694af0, context=0x0) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/qml/qml/qqmlcomponent.cpp:827
      #17 0xb77e0466 in QQuickView::continueExecute (this=0x641ee0) at /usr/include/c++/9.3.0/bits/stl_map.h:463
      #18 0xb77e0986 in QQuickViewPrivate::execute (this=0x642010) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/quick/items/qquickview.cpp:102
      #19 0xb77e0adf in QQuickView::setSource (this=0x641ee0, url=...) at /usr/src/debug/qtdeclarative/6.2.0-r0/git/src/quick/items/qquickview.cpp:236
      #20 0xb7ce4315 in WebOSCompositorWindow::setCompositorMain(QUrl const&, QString const&) () from /usr/lib/libWebOSCoreCompositor.so.0
      #21 0x004a9080 in ?? ()
      #22 0xb6407e3d in __libc_start_main (main=0x4a8d10, argc=3, argv=0xbfacdac4, init=0x4aa240, fini=0x4aa2a0, rtld_fini=0xb7f1fc40 <_dl_fini>, stack_end=0xbfacdabc) at ../csu/libc-start.c:308
      #23 0x004a9771 in ?? ()
      (gdb) 

       

      Note:

      1) The issue is only reproducible in the emulator, QEMU x86 environment. No such issue observed in RPi4 target with the image built from the same code.

      2) We have found that the crash is no longer reproducible after reverting the commit below.

      https://codereview.qt-project.org/c/qt/qtbase/+/327514

      commit 1a65a4faf52f83ba3fbbba88cea1c4bb800e8de7
      Author: Ivan Solovev <ivan.solovev@qt.io>
      Date:   Mon Dec 14 12:27:53 2020 +0100
      
          QObject: port to new property system
      
          Extended QObjectPrivate::ExtraData to store a pointer
          to its parent, and reimplemented qGetBindingStorage()
          function for QObjectPrivate::ExtraData.
          This allows to use Q_OBJECT_COMPAT_PROPERTY macro
          for a property, stored in QObjectPrivate::ExtraData
          and solves all the problems with calling a custom
          setter.
      
          Task-number: QTBUG-85520
          Change-Id: I40e01c29430846359ef9160fa1ae97c702be9a18
          Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
          Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>

       

        Attachments

        For Gerrit Dashboard: QTBUG-93890
        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            agolubev Andrei Golubev
            Reporter:
            jaeyoon.jung Jaeyoon Jung
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There is 1 open Gerrit change