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

Crash in QMLIncubator

    XMLWordPrintable

Details

    Description

      There's a crash in QMLIncubator when running the following test-application:

      import QtQuick 2.0
      
      ListView {
      	width: 400
      	height: 400
      	orientation: ListView.Vertical
      	interactive: false
      	model: foo ? 4 : 2
      	spacing: 2
      	
      	delegate: Rectangle {
      		width: parent.width
      		height: 98
      		color: "red"
      		opacity: 0
      		
      		Repeater {
      			model: 100
      			Text {
      				anchors.centerIn: parent
      				text: index
      				Repeater {
      					model: 100
      					Text {
      						anchors.centerIn: parent
      						text: index
      					}
      				}
      			}
      		}
      		
      		Text {
      			anchors.centerIn: parent
      			text: index
      		}
      
      		Behavior on opacity { NumberAnimation { } }
      		Component.onCompleted: opacity = 1
      	}
      
      	property bool foo: false
      	Component.onCompleted: {
      	while(1) {
      		foo = !foo
      	}
      }
      
      }
      

      That's the callstack when run in qmlscene:

      0   libQt5Qml.5.dylib             	0x000000010b2f6d72 QV4::MemoryManager::mark() + 610
      1   libQt5Qml.5.dylib             	0x000000010b2f6a31 QV4::MemoryManager::runGC() + 2513
      2   libQt5Qml.5.dylib             	0x000000010b2f5e24 QV4::MemoryManager::alloc(unsigned long) + 180
      3   libQt5Qml.5.dylib             	0x000000010b31f979 QV4::Members::ensureIndex(QV4::ExecutionEngine*, unsigned int) + 89
      4   libQt5Qml.5.dylib             	0x000000010b321a0a QV4::Object::Object(QV4::InternalClass*) + 58
      5   libQt5Qml.5.dylib             	0x000000010b315b2f QV4::SimpleScriptFunction::SimpleScriptFunction(QV4::ExecutionContext*, QV4::Function*, bool) + 63
      6   libQt5Qml.5.dylib             	0x000000010b314389 QV4::FunctionObject::createScriptFunction(QV4::ExecutionContext*, QV4::Function*, bool) + 137
      7   libQt5Qml.5.dylib             	0x000000010b4083f1 QQmlObjectCreator::setPropertyBinding(QQmlPropertyData*, QV4::CompiledData::Binding const*) + 2833
      8   libQt5Qml.5.dylib             	0x000000010b405733 QQmlObjectCreator::setupBindings(QBitArray const&) + 1715
      9   libQt5Qml.5.dylib             	0x000000010b4095c7 QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData*, QBitArray const&) + 1367
      10  libQt5Qml.5.dylib             	0x000000010b40477d QQmlObjectCreator::createInstance(int, QObject*, bool) + 3469
      11  libQt5Qml.5.dylib             	0x000000010b403897 QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*) + 1175
      12  libQt5Qml.5.dylib             	0x000000010b395dd6 QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) + 198
      13  libQt5Qml.5.dylib             	0x000000010b395bc8 QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*) + 440
      14  libQt5Qml.5.dylib             	0x000000010b448585 QQmlDelegateModelItem::incubateObject(QQmlComponent*, QQmlEngine*, QQmlContextData*, QQmlContextData*) + 181
      15  libQt5Qml.5.dylib             	0x000000010b44836c QQmlDelegateModelPrivate::object(QQmlListCompositor::Group, int, bool) + 1244
      16  libQt5Qml.5.dylib             	0x000000010b4485fa QQmlDelegateModel::object(int, bool) + 90
      17  libQt5Quick.5.dylib           	0x000000010af19171 QQuickRepeaterPrivate::createItems() + 209
      18  libQt5Quick.5.dylib           	0x000000010af1901e QQuickRepeater::componentComplete() + 78
      19  libQt5Qml.5.dylib             	0x000000010b409b26 QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) + 534
      20  libQt5Qml.5.dylib             	0x000000010b3961af QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) + 1183
      21  libQt5Qml.5.dylib             	0x000000010b395bc8 QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*) + 440
      22  libQt5Qml.5.dylib             	0x000000010b448585 QQmlDelegateModelItem::incubateObject(QQmlComponent*, QQmlEngine*, QQmlContextData*, QQmlContextData*) + 181
      23  libQt5Qml.5.dylib             	0x000000010b44836c QQmlDelegateModelPrivate::object(QQmlListCompositor::Group, int, bool) + 1244
      24  libQt5Qml.5.dylib             	0x000000010b4485fa QQmlDelegateModel::object(int, bool) + 90
      25  libQt5Quick.5.dylib           	0x000000010af19171 QQuickRepeaterPrivate::createItems() + 209
      26  libQt5Quick.5.dylib           	0x000000010af1901e QQuickRepeater::componentComplete() + 78
      27  libQt5Qml.5.dylib             	0x000000010b409b26 QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) + 534
      28  libQt5Qml.5.dylib             	0x000000010b3961af QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) + 1183
      29  libQt5Qml.5.dylib             	0x000000010b395bc8 QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*) + 440
      30  libQt5Qml.5.dylib             	0x000000010b448585 QQmlDelegateModelItem::incubateObject(QQmlComponent*, QQmlEngine*, QQmlContextData*, QQmlContextData*) + 181
      31  libQt5Qml.5.dylib             	0x000000010b44836c QQmlDelegateModelPrivate::object(QQmlListCompositor::Group, int, bool) + 1244
      32  libQt5Qml.5.dylib             	0x000000010b4485fa QQmlDelegateModel::object(int, bool) + 90
      33  libQt5Quick.5.dylib           	0x000000010af59811 QQuickItemViewPrivate::createItem(int, bool) + 193
      34  libQt5Quick.5.dylib           	0x000000010af10566 QQuickListViewPrivate::addVisibleItems(double, double, double, double, bool) + 566
      35  libQt5Quick.5.dylib           	0x000000010af59e1e QQuickItemViewPrivate::refill(double, double) + 238
      36  libQt5Quick.5.dylib           	0x000000010af53e48 QQuickItemView::setModel(QVariant const&) + 1496
      37  libQt5Quick.5.dylib           	0x000000010afcbd0b QQuickItemView::qt_metacall(QMetaObject::Call, int, void**) + 219
      38  libQt5Quick.5.dylib           	0x000000010afbb68c QQuickListView::qt_metacall(QMetaObject::Call, int, void**) + 28
      39  libQt5Qml.5.dylib             	0x000000010b3745a8 QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) + 568
      40  libQt5Qml.5.dylib             	0x000000010b38d4d3 QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) + 1555
      41  libQt5Qml.5.dylib             	0x000000010b38cea0 QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) + 288
      42  libQt5Qml.5.dylib             	0x000000010b38fc99 QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) + 3065
      43  libQt5Qml.5.dylib             	0x000000010b3fb757 QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) + 1367
      44  libQt5Qml.5.dylib             	0x000000010b3d70ac QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 92
      45  libQt5Qml.5.dylib             	0x000000010b37a483 QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) + 755
      46  libQt5Core.5.dylib            	0x000000010c611432 QMetaObject::activate(QObject*, int, int, void**) + 178
      47  libQt5Qml.5.dylib             	0x000000010b375456 QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) + 4326
      48  libQt5Qml.5.dylib             	0x000000010b38d4d3 QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) + 1555
      49  libQt5Qml.5.dylib             	0x000000010b3568ed QV4::QObjectWrapper::setProperty(QObject*, QV4::ExecutionContext*, QQmlPropertyData*, QV4::ValueRef) + 2797
      50  libQt5Qml.5.dylib             	0x000000010b364801 QV4::Runtime::setQmlQObjectProperty(QV4::ExecutionContext*, QV4::ValueRef, int, QV4::ValueRef) + 113
      51  ???                           	0x000000010f5b5509 0 + 4552611081
      52  libQt5Qml.5.dylib             	0x000000010b315fa2 QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) + 690
      53  libQt5Qml.5.dylib             	0x000000010b3f354a QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::ValueRef, QV4::CallData*, bool*) + 634
      54  libQt5Qml.5.dylib             	0x000000010b39d172 QQmlBoundSignalExpression::evaluate(void**) + 2050
      55  libQt5Qml.5.dylib             	0x000000010b39db98 QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) + 440
      56  libQt5Qml.5.dylib             	0x000000010b3d70ac QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) + 92
      57  libQt5Qml.5.dylib             	0x000000010b37a483 QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) + 755
      58  libQt5Core.5.dylib            	0x000000010c611432 QMetaObject::activate(QObject*, int, int, void**) + 178
      59  libQt5Qml.5.dylib             	0x000000010b409d2d QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) + 1053
      60  libQt5Qml.5.dylib             	0x000000010b39368a QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) + 58
      61  libQt5Qml.5.dylib             	0x000000010b391909 QQmlComponentPrivate::completeCreate() + 41
      62  libQt5Qml.5.dylib             	0x000000010b393012 QQmlComponent::create(QQmlContext*) + 114
      63  qmlscene                      	0x000000010adc9344 main + 10228
      64  qmlscene                      	0x000000010adc6614 start + 52
      

      Attachments

        Issue Links

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

          Activity

            People

              shausman Simon Hausmann
              lsinda Lars Sinda
              Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes