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

Accessing the length of a QML_SEQUENTIAL_CONTAINER crashes

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.4.3, 6.4, 6.5.0 Beta2
    • 6.4.2, 6.5.0 Beta1
    • QML: Compiler
    • None
    • b3f81380bd0bd0130620f416658deca86f005052, 049022370 (6.4)

    Description

      The attached code tries to get rid of the messages of QTBUG-110248 by adding the suggested QML_SEQUENTIAL_CONTAINER. Doing so crashes with

      AddressSanitizer:DEADLYSIGNAL
      =================================================================
      ==349426==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x7ff98634815b bp 0x6040000b9420 sp 0x7ffc68b35130 T0)
      ==349426==The signal is caused by a READ memory access.
      ==349426==Hint: address points to the zero page.
          #0 0x7ff98634815b in QMetaObject::indexOfProperty(char const*) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:1032
          #1 0x7ff9878a787e in initValueLookup /home/qt/work/qt/qtdeclarative/src/qml/qml/qqml.cpp:999
          #2 0x7ff9878aac79 in QQmlPrivate::AOTCompiledContext::initGetValueLookup(unsigned int, QMetaObject const*, QMetaType) const /home/qt/work/qt/qtdeclarative/src/qml/qml/qqml.cpp:1570
          #3 0x4153af in QmlCacheGeneratedCode::_sandbox_main_qml::aotBuiltFunctions::{lambda(QQmlPrivate::AOTCompiledContext const*, void*, QQmlPrivate::AOTCompiledContext const**)#1}::operator()(QQmlPrivate::AOTCompiledContext const, QQmlPrivate::AOTCompiledContext const*, void*) const::{lambda(QQmlPrivate::AOTCompiledContext const, void*)#1}::operator()(QQmlPrivate::AOTCompiledContext const, void*) const (/var/home/prcs1076/tmp/sandbox/build/appsandbox+0x4153af)
          #4 0x415622 in QmlCacheGeneratedCode::_sandbox_main_qml::aotBuiltFunctions::{lambda(QQmlPrivate::AOTCompiledContext const*, void*, QQmlPrivate::AOTCompiledContext const**)#1}::_FUN(QQmlPrivate::AOTCompiledContext const, QQmlPrivate::AOTCompiledContext const*, void*) (/var/home/prcs1076/tmp/sandbox/build/appsandbox+0x415622)
          #5 0x7ff98787353f in QV4::Moth::VME::exec(QV4::MetaTypesStackFrame*, QV4::ExecutionEngine*) /home/qt/work/qt/qtdeclarative/src/qml/jsruntime/qv4vme_moth.cpp:472
          #6 0x7ff9877cf288 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) /home/qt/work/qt/qtdeclarative/src/qml/jsruntime/qv4function.cpp:39
          #7 0x7ff987919a07 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmljavascriptexpression.cpp:270
          #8 0x7ff9878ba474 in QQmlBinding::evaluate(void*, QMetaType) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlbinding_p.h:115
          #9 0x7ff9878ba474 in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlbinding.cpp:237
          #10 0x7ff9878b6488 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlbinding.cpp:163
          #11 0x7ff987941ac5 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1391
          #12 0x7ff9878ce268 in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1027
          #13 0x7ff9878ce268 in QQmlComponentPrivate::complete(QQmlEnginePrivate*, QQmlComponentPrivate::ConstructionState*) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1023
          #14 0x7ff9878d1786 in QQmlComponentPrivate::completeCreate() /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1121
          #15 0x7ff9878d18d2 in QQmlComponent::completeCreate() /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:1108
          #16 0x7ff9878d18d2 in QQmlComponent::create(QQmlContext*) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlcomponent.cpp:840
          #17 0x7ff9878b2902 in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlapplicationengine.cpp:122
          #18 0x7ff9878b2eab in QQmlApplicationEngine::load(QUrl const&) /home/qt/work/qt/qtdeclarative/src/qml/qml/qqmlapplicationengine.cpp:287
          #19 0x40d3e4 in main (/var/home/prcs1076/tmp/sandbox/build/appsandbox+0x40d3e4)
          #20 0x7ff985e1650f in __libc_start_call_main (/lib64/libc.so.6+0x2750f)
          #21 0x7ff985e165c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x275c8)
          #22 0x404754 in _start (/var/home/prcs1076/tmp/sandbox/build/appsandbox+0x404754)AddressSanitizer can not provide additional info.
      SUMMARY: AddressSanitizer: SEGV /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:1032 in QMetaObject::indexOfProperty(char const*) const
      ==349426==ABORTING

      Works in when running via debugger.

      Attachments

        Issue Links

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

          Activity

            People

              ulherman Ulf Hermann
              cajus Cajus Pollmeier
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes