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

iOS: ASSERT: "qmlType.metaObject()" in fileqqmltypedata.cpp, line 1019

XMLWordPrintable

    • iOS/tvOS/watchOS
    • 0a567a7f9 (dev), 4a79ed90f (6.9), 0370138e2 (6.8), 8bc3de63b (tqtc/lts-6.5)

      We're seeing the following crash, on a project ported from Qt5 to Qt 6.6.3 and 6.7.2, on iOS (works on other platforms)

       

      ASSERT: "qmlType.metaObject()" in fileqqmltypedata.cpp, line 1039
      #2    0x00000001a0f46ba0 in abort ()
      #3    0x00000001066c6210 in qAbort() at /Users/qt/work/qt/qtbase/src/corelib/global/qglobal.cpp:161
      #4    0x00000001066cf004 in void qt_message_fatal<QString&>(QtMsgType, QMessageLogContext const&, QString&) at /Users/qt/work/qt/qtbase/src/corelib/global/qlogging.cpp:2030
      #5    0x00000001066ca930 in qt_message(QtMsgType, QMessageLogContext const&, char const*, char*) at /Users/qt/work/qt/qtbase/src/corelib/global/qlogging.cpp:378
      #6    0x00000001066caf2c in QMessageLogger::fatal(char const*, ...) const at /Users/qt/work/qt/qtbase/src/corelib/global/qlogging.cpp:901
      #7    0x00000001066c5818 in qt_assert(char const*, char const*, int) at /Users/qt/work/qt/qtbase/src/corelib/global/qassert.cpp:68
      #8    0x000000010644f034 in QQmlTypeData::buildTypeResolutionCaches(QQmlRefPointer<QQmlTypeNameCache>*, QV4::ResolvedTypeReferenceMap*) const at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypedata.cpp:1039
      #9    0x000000010644d0dc in QQmlTypeData::done() at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypedata.cpp:440
      #10    0x000000010625ebc8 in QQmlDataBlob::tryDone() at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmldatablob.cpp:485
      #11    0x0000000106473c38 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QQmlDataBlob::SourceCodeData const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:415
      #12    0x0000000106473238 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QString const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:395
      #13    0x0000000106472f7c in QQmlTypeLoader::loadThread(QQmlRefPointer<QQmlDataBlob> const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:260
      #14    0x000000010647b9b8 in PlainLoader::loadThread(QQmlTypeLoader*, QQmlDataBlob*) const at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:109
      #15    0x000000010647269c in void QQmlTypeLoader::doLoad<PlainLoader>(PlainLoader const&, QQmlDataBlob*, QQmlTypeLoader::Mode) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:168
      #16    0x0000000106472638 in QQmlTypeLoader::load(QQmlDataBlob*, QQmlTypeLoader::Mode) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:198
      #17    0x000000010647859c in QQmlTypeLoader::getType(QUrl const&, QQmlTypeLoader::Mode) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:968
      #18    0x0000000106451df4 in QQmlTypeData::resolveTypes() at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypedata.cpp:947
      #19    0x000000010645161c in QQmlTypeData::allDependenciesDone() at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypedata.cpp:821
      #20    0x0000000106473be4 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QQmlDataBlob::SourceCodeData const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:408
      #21    0x0000000106473238 in QQmlTypeLoader::setData(QQmlRefPointer<QQmlDataBlob> const&, QString const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:395
      #22    0x0000000106472f7c in QQmlTypeLoader::loadThread(QQmlRefPointer<QQmlDataBlob> const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloader.cpp:260
      #23    0x0000000106490b34 in QQmlTypeLoaderThread::loadThread(QQmlRefPointer<QQmlDataBlob> const&) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/qqmltypeloaderthread.cpp:107
      #24    0x0000000106491b40 in decltype(*static_cast<QQmlTypeLoaderThread*>(fp0).*fp(static_cast<QQmlRefPointer<QQmlDataBlob>>(fp1))) std::__1::__invoke_constexpr<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob>, void>(void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlTypeLoaderThread*&&, QQmlRefPointer<QQmlDataBlob>&&) at /Applications/Xcode14.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.2.sdk/usr/include/c++/v1/type_traits:3866
      #25    0x0000000106491a98 in decltype(auto) std::__1::__apply_tuple_impl<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::__1::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob>>, 0ul, 1ul>(void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::__1::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob>>&&, std::__1::__tuple_indices<0ul, 1ul>) at /Applications/Xcode14.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.2.sdk/usr/include/c++/v1/tuple:1536
      #26    0x0000000106491978 in decltype(auto) std::__1::apply<void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::__1::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob>>>(void (QQmlTypeLoaderThread::*&)(QQmlRefPointer<QQmlDataBlob> const&), std::__1::tuple<QQmlTypeLoaderThread*, QQmlRefPointer<QQmlDataBlob>>&&) at /Applications/Xcode14.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.2.sdk/usr/include/c++/v1/tuple:1545
      #27    0x00000001064916f0 in QQmlThread::Message* QQmlThread::createMessageFromMethod<void (QQmlTypeLoaderThread::*)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&>(void (QQmlTypeLoaderThread::*&&)(QQmlRefPointer<QQmlDataBlob> const&), QQmlRefPointer<QQmlDataBlob> const&)::I::call(QQmlThread*) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/ftw/qqmlthread_p.h:106
      #28    0x0000000106211210 in QQmlThreadPrivate::threadEvent() at /Users/qt/work/qt/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:148
      #29    0x0000000106211180 in QQmlThreadPrivate::event(QEvent*) at /Users/qt/work/qt/qtdeclarative/src/qml/qml/ftw/qqmlthread.cpp:105
      #30    0x00000001067489f0 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1288
      #31    0x00000001067484e4 in doNotify(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1217
      #32    0x00000001067485ac in QCoreApplication::notify(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1200
      #33    0x0000000105980940 in QGuiApplication::notify(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/gui/kernel/qguiapplication.cpp:1993
      #34    0x00000001067483b4 in QCoreApplication::notifyInternal2(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1121
      #35    0x0000000106749058 in QCoreApplication::sendEvent(QObject*, QEvent*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1539
      #36    0x000000010674a01c in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1901
      #37    0x000000010699b7b4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:432
      #38    0x000000010675af6c in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qeventloop.cpp:100
      #39    0x000000010675b158 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at /Users/qt/work/qt/qtbase/src/corelib/kernel/qeventloop.cpp:182
      #40    0x000000010689964c in QThread::exec() at /Users/qt/work/qt/qtbase/src/corelib/thread/qthread.cpp:578
      #41    0x0000000106899e54 in QThread::run() at /Users/qt/work/qt/qtbase/src/corelib/thread/qthread.cpp:699
      #42    0x00000001069ac3d4 in QThreadPrivate::start(void*)::$_0::operator()() const at /Users/qt/work/qt/qtbase/src/corelib/thread/qthread_unix.cpp:324
      #43    0x00000001069aaf84 in void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) at /Users/qt/work/qt/qtbase/src/corelib/thread/qthread_unix.cpp:260
      #44    0x00000001069aaf14 in QThreadPrivate::start(void*) at /Users/qt/work/qt/qtbase/src/corelib/thread/qthread_unix.cpp:283
      #45    0x00000001f5e4106c in _pthread_start () 

      Does this ring any bells or anything iOS does differently ?

      Meanwhile we're trying to reduce and get a minimal repro, so far it's reduced to the point of:

      import QtQuick
      
      Item {
          AnyCustomUserItem {} // commenting this fixes it
      }
      
      

      So it must be something in our qmake build system, as it works fine with minimal cmake examples.

       

       

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

            qtqmlteam Qt Qml Team User
            iamsergio Sergio Martins
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes