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

crash in QQmlObjectCreator::populateInstance when instantiating qml file

    XMLWordPrintable

Details

    Description

      we are using statically linked qt within a plugin. the first plugin instance works fine. however further plugin instances (after unloading the initial instance) cannot instantiate the qml file anymore:

      • QQmlComponent::loadUrl() can load the url
      • QQmlComponent::create() crashes in:
        Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
        Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000008
        
        
        Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
        0   myPlugin	0x00000001274fcf3c QT_NAMESPACE::QScopedPointer<QT_NAMESPACE::QObjectData, QT_NAMESPACE::QScopedPointerDeleter<QT_NAMESPACE::QObjectData> >::data() const + 12
        1   myPlugin	0x00000001274f32b5 QT_NAMESPACE::QScopedPointer<QT_NAMESPACE::QObjectData, QT_NAMESPACE::QScopedPointerDeleter<QT_NAMESPACE::QObjectData> >::pointer QT_NAMESPACE::qGetPtrHelper<QT_NAMESPACE::QScopedPointer<QT_NAMESPACE::QObjectData, QT_NAMESPACE::QScopedPointerDeleter<QT_NAMESPACE::QObjectData> > >(QT_NAMESPACE::QScopedPointer<QT_NAMESPACE::QObjectData, QT_NAMESPACE::QScopedPointerDeleter<QT_NAMESPACE::QObjectData> > const&) + 21
        2   myPlugin	0x00000001274f3f6c QT_NAMESPACE::QObject::d_func() const + 28
        3   myPlugin	0x00000001274e7153 QT_NAMESPACE::QObject::objectName() const + 35
        4   myPlugin	0x000000012635c7d1 QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 113
        5   myPlugin	0x000000012635ac76 QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 438
        6   myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        7   myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        8   myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        9   myPlugin	0x000000012635af4e QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 1166
        10  myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        11  myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        12  myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        13  myPlugin	0x000000012635af4e QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 1166
        14  myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        15  myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        16  myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        17  myPlugin	0x000000012635af4e QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 1166
        18  myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        19  myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        20  myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        21  myPlugin	0x000000012635af4e QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 1166
        22  myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        23  myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        24  myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        25  myPlugin	0x0000000126356567 QT_NAMESPACE::QQmlObjectCreator::create(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlInstantiationInterrupt*) + 1943
        26  myPlugin	0x0000000126356eed QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 2077
        27  myPlugin	0x000000012635af4e QT_NAMESPACE::QQmlObjectCreator::setPropertyBinding(QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QV4::CompiledData::Binding const*) + 1166
        28  myPlugin	0x0000000126358583 QT_NAMESPACE::QQmlObjectCreator::setupBindings(QT_NAMESPACE::QBitArray const&) + 2115
        29  myPlugin	0x000000012635cd1d QT_NAMESPACE::QQmlObjectCreator::populateInstance(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlPropertyData*, QT_NAMESPACE::QBitArray const&) + 1469
        30  myPlugin	0x0000000126357792 QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 4290
        31  myPlugin	0x0000000126356567 QT_NAMESPACE::QQmlObjectCreator::create(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlInstantiationInterrupt*) + 1943
        32  myPlugin	0x0000000126356eed QT_NAMESPACE::QQmlObjectCreator::createInstance(int, QT_NAMESPACE::QObject*, bool) + 2077
        33  myPlugin	0x0000000126356567 QT_NAMESPACE::QQmlObjectCreator::create(int, QT_NAMESPACE::QObject*, QT_NAMESPACE::QQmlInstantiationInterrupt*) + 1943
        34  myPlugin	0x00000001262b415c QT_NAMESPACE::QQmlComponentPrivate::beginCreate(QT_NAMESPACE::QQmlContextData*) + 940
        35  myPlugin	0x00000001262b3da2 QT_NAMESPACE::QQmlComponent::beginCreate(QT_NAMESPACE::QQmlContext*) + 98
        36  myPlugin	0x00000001262b3cfd QT_NAMESPACE::QQmlComponent::create(QT_NAMESPACE::QQmlContext*) + 125
        

      this crash somehow seems to be triggered, if a Component:

      • contains Keys properties, like
            Keys.onReturnPressed: doSomething()
            Keys.onEnterPressed: doSomething()
            Keys.onEscapePressed: doSomethingElse()
        
      • contains elements from QtGraphicalEffects (like DropShadow or ColorOverlay)

      removing all Keys properties and QtGraphicalEffects components resolves this issue.

      Attachments

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

        Activity

          People

            aalpert Alan Alpert
            timblechmann tim blechmann
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes