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

[Reg 6.8 -> 6.10] Assert in QQmlPropertyCacheAliasCreator<QQmlTypeCompiler>::propertyDataForAlias

XMLWordPrintable

      Consider the following QML code:

       

      import QtQuick
      
      Item {
          id: option
      
          property alias label: option.description
          property alias description: option.objectName
      } 

       

      Running it in qmlscene triggers an assert:

      ASSERT: "targetObjectIndex >= 0" in file /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlpropertycachecreator_p.h, line 1001

      #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
      
      #1  0x00007fffef29de33 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
      
      #2  0x00007fffef2427b6 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      
      #3  0x00007fffef22934b in __GI_abort () at abort.c:77
      
      #4  0x00007fffefbbcef5 in qAbort () at /home/nico/workspace/qt6-dev/qtbase/src/corelib/global/qassert.cpp:46
      
      #5  0x00007fffefc17c3a in qt_maybe_message_fatal<QString&> (msgType=msgType@entry=QtFatalMsg, context=..., message=...) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/global/qlogging.cpp:2169
      
      #6  0x00007fffefc17da5 in qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
      
          (msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7ffff0790040 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7bffc8a5fa20) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/global/qlogging.cpp:412
      
      #7  0x00007fffefc28bba in QMessageLogger::fatal (this=this@entry=0x7bffc88cbb20, msg=msg@entry=0x7ffff0790040 "ASSERT: \"%s\" in file %s, line %d") at /home/nico/workspace/qt6-dev/qtbase/src/corelib/global/qlogging.cpp:901
      
      #8  0x00007fffefbbd05b in qt_assert (assertion=assertion@entry=0x7ffff4312e80 "targetObjectIndex >= 0", file=file@entry=0x7ffff43113c0 "/home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlpropertycachecreator_p.h", line=line@entry=1001)
      
          at /home/nico/workspace/qt6-dev/qtbase/src/corelib/global/qassert.cpp:117
      
      #9  0x00007ffff3d7572a in QQmlPropertyCacheAliasCreator<QQmlTypeCompiler>::propertyDataForAlias
      
          (this=this@entry=0x7bffc8b5f180, component=..., alias=..., type=<optimized out>, version=version@entry=0x7bffc8a5f820, propertyFlags=<optimized out>, targetPropertyIndex=<optimized out>)
      
          at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlpropertycachecreator_p.h:1001
      
      #10 0x00007ffff3d753d5 in QQmlPropertyCacheAliasCreator<QQmlTypeCompiler>::propertyDataForAlias (this=this@entry=0x7bffc8b5f180, component=<optimized out>, alias=..., type=<optimized out>,  
          type@entry=0x7bffc8a5f840, version=version@entry=0x7bffc8a5f820, propertyFlags=<optimized out>, targetPropertyIndex=<optimized out>) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlpropertycachecreator_p.h:997
      
      #11 0x00007ffff3d76786 in QQmlPropertyCacheAliasCreator<QQmlTypeCompiler>::appendAliasToPropertyCache (this=this@entry=0x7bffc8b5f180, component=..., alias=..., objectIndex=objectIndex@entry=0, aliasIndex=aliasIndex@entry=0, encodedMetaPropertyIndex=<optimized out>)
      
          at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlpropertycachecreator_p.h:1115
      
      #12 0x00007ffff3d76ebd in QQmlComponentAndAliasResolver<QQmlTypeCompiler>::appendAliasToPropertyCache
      
          (this=this@entry=0x7bffc8d02550, component=component@entry=0x7e4fec4bc920, alias=alias@entry=0x7e4fec4bca88, objectIndex=objectIndex@entry=0, aliasIndex=aliasIndex@entry=0, encodedPropertyIndex=encodedPropertyIndex@entry=-1, aliasCacheCreator=<optimized out>, error=
      <optimized out>) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlcomponentandaliasresolver_p.h:74
      
      #13 0x00007ffff3cf6cb8 in QQmlComponentAndAliasResolver<QQmlTypeCompiler>::resolveAliasesInObject
      
          (this=this@entry=0x7bffc8d02550, component=<optimized out>, objectIndex=objectIndex@entry=0, aliasCacheCreator=aliasCacheCreator@entry=0x7bffc8b5f180, error=error@entry=0x7bffc8b5f080)
      
          at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypecompiler.cpp:916
      
      #14 0x00007ffff3d77842 in QQmlComponentAndAliasResolver<QQmlTypeCompiler>::resolveAliases (this=this@entry=0x7bffc8d02550, componentIndex=componentIndex@entry=0) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlcomponentandaliasresolver_p.h:451
      
      #15 0x00007ffff3d79a75 in QQmlComponentAndAliasResolver<QQmlTypeCompiler>::resolve (this=this@entry=0x7bffc8d02550, root=<optimized out>) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmlcomponentandaliasresolver_p.h:378
      
      #16 0x00007ffff3cf9391 in QQmlTypeCompiler::compile (this=this@entry=0x7bffc8b5e220) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypecompiler.cpp:73
      
      #17 0x00007ffff3d86a89 in QQmlTypeData::compile (this=this@entry=0x7d4fec4c5b80, typeNameCache=..., resolvedTypeCache=resolvedTypeCache@entry=0x7bffc8d010b0, dependencyHasher=...) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypedata.cpp:905
      
      #18 0x00007ffff3d9b437 in QQmlTypeData::done (this=0x7d4fec4c5b80) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypedata.cpp:612
      
      #19 0x00007ffff3a543a0 in QQmlDataBlob::tryDone (this=0x7d4fec4c5b80) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmldatablob.cpp:519
      
      #20 0x00007ffff3de5991 in QQmlTypeLoader::setData (this=this@entry=0x7d2fec40dd80, blob=..., d=...) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:480
      
      #21 0x00007ffff3de709a in QQmlTypeLoader::setData (this=this@entry=0x7d2fec40dd80, blob=..., fileName=...) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:461
      
      #22 0x00007ffff3de744d in QQmlTypeLoader::loadThread (this=0x7d2fec40dd80, blob=...) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:319
      
      #23 0x00007ffff3e20113 in QQmlTypeLoaderThread::loadThread (this=<optimized out>, b=<optimized out>) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/qqmltypeloaderthread.cpp:110
      
      #24 0x00007ffff3e227d2 in std::__invoke_impl<void, void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob> >
      
          (__f=@0x7c3fec456060: (void (QQmlTypeLoaderThread::*)(class QQmlTypeLoaderThread * const, const class QQmlRefPointer<QQmlDataBlob> &)) 0x7ffff3e200ee <QQmlTypeLoaderThread::loadThread(QQmlRefPointer<QQmlDataBlob> const&)>, __t=@0x7bffc87f9948: 0x7c3fec456010)
      
          at /usr/include/c++/15/bits/invoke.h:76
      
      #25 0x00007ffff3e2293e in std::__invoke<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob> >
      
          (__fn=@0x7c3fec456060: (void (QQmlTypeLoaderThread::*)(class QQmlTypeLoaderThread * const, const class QQmlRefPointer<QQmlDataBlob> &)) 0x7ffff3e200ee <QQmlTypeLoaderThread::loadThread(QQmlRefPointer<QQmlDataBlob> const&)>) at /usr/include/c++/15/bits/invoke.h:98
      
      #26 std::__apply_impl<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob> >, 0ul, 1ul>
      
          (__f=@0x7c3fec456060: (void (QQmlTypeLoaderThread::*)(class QQmlTypeLoaderThread * const, const class QQmlRefPointer<QQmlDataBlob> &)) 0x7ffff3e200ee <QQmlTypeLoaderThread::loadThread(QQmlRefPointer<QQmlDataBlob> const&)>, __t=...) at /usr/include/c++/15/tuple:2920
      
      #27 std::apply<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob> > >
      
          (__f=@0x7c3fec456060: (void (QQmlTypeLoaderThread::*)(class QQmlTypeLoaderThread * const, const class QQmlRefPointer<QQmlDataBlob> &)) 0x7ffff3e200ee <QQmlTypeLoaderThread::loadThread(QQmlRefPointer<QQmlDataBlob> const&)>, __t=...) at /usr/include/c++/15/tuple:2935
      
      #28 QQmlThread::createMessageFromMethod<void (QQmlTypeLoaderThread::*)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&>(void (QQmlTypeLoaderThread::*&&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&)::I::call(QQmlThr
      ead*) (this=0x7c3fec456050, thread=<optimized out>) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/ftw/qqmlthread_p.h:109
      
      #29 0x00007ffff407c813 in QQmlThreadPrivate::threadEvent (this=0x7cbfec55fc80) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/ftw/qqmlthread_impl.cpp:143
      
      #30 0x00007ffff407c96d in QQmlThreadPrivate::ThreadObject::event (this=0x7cbfec55fcd8, e=0x7c1fec4c0890) at /home/nico/workspace/qt6-dev/qtdeclarative/src/qml/qml/ftw/qqmlthread_impl.cpp:85
      
      #31 0x00007ffff6485785 in QApplicationPrivate::notify_helper (this=this@entry=0x7d4fec3e2d80, receiver=receiver@entry=0x7cbfec55fcd8, e=e@entry=0x7c1fec4c0890) at /home/nico/workspace/qt6-dev/qtbase/src/widgets/kernel/qapplication.cpp:3273
      
      #32 0x00007ffff64a0c05 in QApplication::notify (this=0x7c1fec3e14d0, receiver=<optimized out>, e=0x7c1fec4c0890) at /home/nico/workspace/qt6-dev/qtbase/src/widgets/kernel/qapplication.cpp:3223
      
      #33 0x00007fffefdc6ade in QCoreApplication::notifyInternal2 (receiver=0x7cbfec55fcd8, event=event@entry=0x7c1fec4c0890) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
      
      #34 0x00007fffefdc6cc9 in QCoreApplication::sendEvent (receiver=receiver@entry=0x7cbfec55fcd8, event=event@entry=0x7c1fec4c0890) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
      
      #35 0x00007fffefdc901f in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x7cdfec47e480) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
      
      #36 0x00007fffefdc933a in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
      
      #37 0x00007ffff06a7074 in postEventSourceDispatch (s=s@entry=0x7cafec4c1000) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
      
      #38 0x00007fffef506776 in g_main_dispatch (context=0x7d0fec588140) at ../glib/gmain.c:3565
      
      #39 g_main_context_dispatch_unlocked (context=context@entry=0x7d0fec588140) at ../glib/gmain.c:4425
      
      #40 0x00007fffef509668 in g_main_context_iterate_unlocked (context=context@entry=0x7d0fec588140, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4490
      
      #41 0x00007fffef509eac in g_main_context_iteration (context=0x7d0fec588140, may_block=1) at ../glib/gmain.c:4556
      
      #42 0x00007ffff06a5464 in QEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
      
      #43 0x00007fffefde6a4a in QEventLoop::processEvents (this=this@entry=0x7bffc87f9360, flags=...) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qeventloop.cpp:104
      
      #44 0x00007fffefde8045 in QEventLoop::exec (this=this@entry=0x7bffc87f9360, flags=...) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/kernel/qeventloop.cpp:186
      
      #45 0x00007ffff013af6b in QThread::exec (this=<optimized out>) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/thread/qthread.cpp:672
      
      #46 0x00007ffff013b0c9 in QThread::run (this=<optimized out>) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/thread/qthread.cpp:793
      
      --Type <RET> for more, q to quit, c to continue without paging--c
      
      #47 0x00007ffff03196df in operator() (__closure=__closure@entry=0x7bffc88f9060) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/thread/qthread_unix.cpp:437
      
      #48 0x00007ffff0319c6d in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/thread/qthread_unix.cpp:367
      
      #49 0x00007ffff0319f3b in QThreadPrivate::start (arg=arg@entry=0x7cbfec55fc80) at /home/nico/workspace/qt6-dev/qtbase/src/corelib/thread/qthread_unix.cpp:397
      
      #50 0x00007ffff7863c76 in asan_thread_start (arg=0x7bffe426a000) at ../../../../libsanitizer/asan/asan_interceptors.cpp:239
      
      #51 0x00007fffef29bdf1 in start_thread (arg=<optimized out>) at pthread_create.c:448
      
      #52 0x00007fffef320c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      tested with current Qt dev branch (qtdeclarative 5b2216f97ac69d9c7a02700b253c0b0fc4d65011)

       

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

            ulherman Ulf Hermann
            nicolasfella Nicolas Fella
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:

                There is 1 open Gerrit change