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

Read access violation in collectFromJSStack

    XMLWordPrintable

Details

    • Windows

    Description

      Within a QML application, in a custom control backed by a ListView, we randomly get a read access violation when clicking on it. This is happening since we updated to qt 5.11.1; we cannot reproduce with 5.9.3.

      We're using qt with msvc2015, x64.

      Following is the backtrace of the crash:

      Qt5Qmld.dll!QV4::Chunk::testBit(unsigned __int64 * bitmap, unsigned __int64 index) Line 142	C++
      Qt5Qmld.dll!QV4::Heap::Base::inUse() Line 124	C++
      Qt5Qmld.dll!QV4::Managed::inUse() Line 218	C++
      Qt5Qmld.dll!QV4::MemoryManager::collectFromJSStack(QV4::MarkStack * markStack) Line 1228	C++
      Qt5Qmld.dll!QV4::MemoryManager::collectRoots(QV4::MarkStack * markStack) Line 927	C++
      Qt5Qmld.dll!QV4::MemoryManager::mark() Line 970	C++
      Qt5Qmld.dll!QV4::MemoryManager::runGC() Line 1078	C++
      Qt5Qmld.dll!QV4::MemoryManager::allocData(unsigned __int64 size) Line 850	C++
      Qt5Qmld.dll!QV4::MemoryManager::allocObjectWithMemberData(const QV4::VTable * vtable, unsigned int nMembers) Line 865	C++
      Qt5Qmld.dll!QV4::MemoryManager::allocateObject<QV4::Object>(QV4::InternalClass * ic) Line 190	C++
      Qt5Qmld.dll!QV4::MemoryManager::allocObject<QV4::Object>(QV4::InternalClass * ic, QV4::Object * prototype) Line 233	C++
      Qt5Qmld.dll!QV4::ExecutionEngine::newObject(QV4::InternalClass * internalClass, QV4::Object * prototype) Line 545	C++
      Qt5Qmld.dll!QV4::Runtime::method_objectLiteral(QV4::ExecutionEngine * engine, const QV4::Value * args, int classId, int arrayValueCount, int arrayGetterSetterCountAndFlags) Line 1221	C++
      00000185f5de040e()	Unknown
      00000185eab138a0()	Unknown
      00000185ed7e17d0()	Unknown
      0000018500000005()	Unknown
      0000018500000000()	Unknown
      0000002700000000()	Unknown
      Qt5Qmld.dll!QV4::ExecutionEngine::debugger() Line 387	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(const QV4::FunctionObject * fo, const QV4::Value * thisObject, const QV4::Value * argv, int argc) Line 574	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(QV4::Function * v4Function, const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QV4::Function::call(const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 217	C++
      Qt5Qmld.dll!QQmlBinding::evaluate(bool * isUndefined) Line 209	C++
      Qt5Qmld.dll!QQmlNonbindingBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 245	C++
      Qt5Qmld.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 187	C++
      Qt5Qmld.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 549	C++
      Qt5Qmld.dll!QQmlData::flushPendingBindingImpl(QQmlPropertyIndex index) Line 936	C++
      Qt5Qmld.dll!QQmlData::flushPendingBinding(QObject * o, QQmlPropertyIndex propertyIndex) Line 421	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QObject * object, QQmlPropertyData * property, bool captureRequired) Line 232	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QObject * object, int propertyIndex, bool captureRequired) Line 348	C++
      Qt5Qmld.dll!QV4::Runtime::method_loadQmlScopeObjectProperty(QV4::ExecutionEngine * engine, const QV4::Value & context, int propertyIndex, bool captureRequired) Line 1289	C++
      00000185f5dd0086()	Unknown
      00000185eab138a0()	Unknown
      00000185ed7e16b0()	Unknown
      000000270000002f()	Unknown
      Qt5Qmld.dll!QTypedArrayData<QQmlPropertyData>::deallocate(QArrayData * data) Line 238	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(const QV4::FunctionObject * fo, const QV4::Value * thisObject, const QV4::Value * argv, int argc) Line 574	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(QV4::Function * v4Function, const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QV4::Function::call(const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 217	C++
      Qt5Qmld.dll!QQmlBinding::evaluate(bool * isUndefined) Line 209	C++
      Qt5Qmld.dll!QQmlNonbindingBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 245	C++
      Qt5Qmld.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 187	C++
      Qt5Qmld.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 549	C++
      Qt5Qmld.dll!QQmlData::flushPendingBindingImpl(QQmlPropertyIndex index) Line 936	C++
      Qt5Qmld.dll!QQmlData::flushPendingBinding(QObject * o, QQmlPropertyIndex propertyIndex) Line 421	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::getProperty(QV4::ExecutionEngine * engine, QObject * object, QQmlPropertyData * property, bool captureRequired) Line 232	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::getQmlProperty(QV4::ExecutionEngine * engine, QQmlContextData * qmlContext, QObject * object, QV4::String * name, QV4::QObjectWrapper::RevisionMode revisionMode, bool * hasProperty) Line 382	C++
      Qt5Qmld.dll!QV4::QQmlContextWrapper::get(const QV4::Managed * m, QV4::String * name, bool * hasProperty) Line 211	C++
      Qt5Qmld.dll!QV4::Object::get(QV4::String * name, bool * hasProperty) Line 364	C++
      Qt5Qmld.dll!QV4::ExecutionContext::getProperty(QV4::String * name) Line 292	C++
      Qt5Qmld.dll!QV4::Runtime::method_loadName(QV4::ExecutionEngine * engine, int nameIndex) Line 745	C++
      00000185f5db0d2a()	Unknown
      00000185eab138a0()	Unknown
      00007fff0000000e()	Unknown
      000000275351dfa0()	Unknown
      Qt5Qmld.dll!QV4::ExecutionEngine::debugger() Line 387	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(const QV4::FunctionObject * fo, const QV4::Value * thisObject, const QV4::Value * argv, int argc) Line 574	C++
      Qt5Qmld.dll!QV4::Moth::VME::exec(QV4::Function * v4Function, const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QV4::Function::call(const QV4::Value * thisObject, const QV4::Value * argv, int argc, const QV4::ExecutionContext * context) Line 73	C++
      Qt5Qmld.dll!QQmlJavaScriptExpression::evaluate(QV4::CallData * callData, bool * isUndefined) Line 217	C++
      Qt5Qmld.dll!QQmlBinding::evaluate(bool * isUndefined) Line 209	C++
      Qt5Qmld.dll!QQmlNonbindingBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 245	C++
      Qt5Qmld.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 187	C++
      Qt5Qmld.dll!QQmlBinding::setEnabled(bool e, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 549	C++
      Qt5Qmld.dll!QQmlObjectCreator::finalize(QQmlInstantiationInterrupt & interrupt) Line 1348	C++
      Qt5Qmld.dll!QQmlComponentPrivate::complete(QQmlEnginePrivate * enginePriv, QQmlComponentPrivate::ConstructionState * state) Line 926	C++
      Qt5Qmld.dll!QQmlComponentPrivate::completeCreate() Line 962	C++
      Qt5Qmld.dll!QQmlComponent::completeCreate() Line 953	C++
      Qt5Quickd.dll!QQuickItemLayer::activateEffect() Line 8240	C++
      Qt5Quickd.dll!QQuickItemLayer::activate() Line 8192	C++
      Qt5Quickd.dll!QQuickItemLayer::setEnabled(bool e) Line 8144	C++
      Qt5Quickd.dll!QQuickItemLayer::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 295	C++
      Qt5Qmld.dll!QQmlPropertyData::writeProperty(QObject * target, void * value, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 346	C++
      Qt5Qmld.dll!GenericBinding<1>::doStore<bool>(bool value, const QQmlPropertyData * pd, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 335	C++
      Qt5Qmld.dll!GenericBinding<1>::write(const QV4::Value & result, bool isUndefined, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 296	C++
      Qt5Qmld.dll!QQmlNonbindingBinding::doUpdate(const QQmlJavaScriptExpression::DeleteWatcher & watcher, QFlags<enum QQmlPropertyData::WriteFlag> flags, QV4::Scope & scope) Line 249	C++
      Qt5Qmld.dll!QQmlBinding::update(QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 187	C++
      Qt5Qmld.dll!QQmlBinding::expressionChanged() Line 528	C++
      Qt5Qmld.dll!QQmlJavaScriptExpressionGuard_callback(QQmlNotifierEndpoint * e, void * * __formal) Line 485	C++
      Qt5Qmld.dll!QQmlNotifier::emitNotify(QQmlNotifierEndpoint * endpoint, void * * a) Line 108	C++
      Qt5Qmld.dll!QQmlData::signalEmitted(QAbstractDeclarativeData * __formal, QObject * object, int index, void * * a) Line 863	C++
      Qt5Cored.dll!QMetaObject::activate(QObject * sender, int signalOffset, int local_signal_index, void * * argv) Line 3654	C++
      Qt5Cored.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 3634	C++
      Qt5Quickd.dll!QQuickItem::enabledChanged() Line 1130	C++
      Qt5Quickd.dll!QQuickItemPrivate::setEffectiveEnableRecur(QQuickItem * scope, bool newEffectiveEnable) Line 5997	C++
      Qt5Quickd.dll!QQuickItem::setEnabled(bool e) Line 5901	C++
      Qt5Quickd.dll!QQuickItem::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 943	C++
      Qt5Quickd.dll!QQuickItem::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 1014	C++
      Qt5QuickTemplates2d.dll!QQuickControl::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 526	C++
      Qt5QuickTemplates2d.dll!QQuickAbstractButton::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 535	C++
      Qt5QuickTemplates2d.dll!QQuickButton::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 152	C++
      Qt5QuickTemplates2d.dll!QQuickRoundButton::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 142	C++
      Qt5Cored.dll!QMetaObject::metacall(QObject * object, QMetaObject::Call cl, int idx, void * * argv) Line 302	C++
      Qt5Qmld.dll!QQmlPropertyData::writeProperty(QObject * target, void * value, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 351	C++
      Qt5Qmld.dll!QQmlPropertyPrivate::write(QObject * object, const QQmlPropertyData & property, const QVariant & value, QQmlContextData * context, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 1219	C++
      Qt5Qmld.dll!QQmlPropertyPrivate::writeValueProperty(QObject * object, const QQmlPropertyData & core, const QQmlPropertyData & valueTypeData, const QVariant & value, QQmlContextData * context, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 1187	C++
      Qt5Qmld.dll!QQmlPropertyPrivate::writeValueProperty(const QVariant & value, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 1167	C++
      Qt5Qmld.dll!QQmlPropertyPrivate::write(const QQmlProperty & that, const QVariant & value, QFlags<enum QQmlPropertyData::WriteFlag> flags) Line 1516	C++
      Qt5Qmld.dll!QQmlProperty::write(const QVariant & value) Line 1433	C++
      Qt5Quickd.dll!QQuickTransitionManager::transition(const QList<QQuickStateAction> & list, QQuickTransition * transition, QObject * defaultTarget) Line 251	C++
      Qt5Quickd.dll!QQuickState::apply(QQuickTransition * trans, QQuickState * revert) Line 690	C++
      Qt5Quickd.dll!QQuickStateGroupPrivate::setCurrentStateInternal(const QString & state, bool ignoreTrans) Line 487	C++
      Qt5Quickd.dll!QQuickStateGroup::setState(const QString & state) Line 292	C++
      Qt5Quickd.dll!QQuickItemPrivate::setState(const QString & state) Line 4896	C++
      Qt5Quickd.dll!QQuickItem::setState(const QString & state) Line 4930	C++
      Qt5Quickd.dll!QQuickItem::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 945	C++
      Qt5Quickd.dll!QQuickItem::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 1014	C++
      Qt5QuickTemplates2d.dll!QQuickControl::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 526	C++
      Qt5QuickTemplates2d.dll!QQuickPane::qt_metacall(QMetaObject::Call _c, int _id, void * * _a) Line 188	C++
      Qt5Qmld.dll!QQmlVMEMetaObject::metaCall(QObject * o, QMetaObject::Call c, int _id, void * * a) Line 982	C++
      Qt5Cored.dll!QMetaObject::metacall(QObject * object, QMetaObject::Call cl, int idx, void * * argv) Line 299	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine * engine, QObject * object, QQmlPropertyData * property, const QV4::Value & value) Line 537	C++
      Qt5Qmld.dll!QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine * engine, QObject * object, int propertyIndex, const QV4::Value & value) Line 662	C++
      Qt5Qmld.dll!QV4::Runtime::method_storeQmlScopeObjectProperty(QV4::ExecutionEngine * engine, const QV4::Value & context, int propertyIndex, const QV4::Value & value) Line 1315	C++
      0000018582650b7f()	Unknown
      00000185eab138a0()	Unknown
      00000185ed7e1518()	Unknown
      0000018500000010()	Unknown
      00000185ed7e14f8()	Unknown
      00000185eab138a0()	Unknown
      00000027535248d8()	Unknown
      00000185ed7e1460()	Unknown
      

      Attachments

        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
            page page
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes