-
Bug
-
Resolution: Unresolved
-
P1: Critical
-
6.7.2
-
None
-
iOS 17.5 / XCode 15.4
-
-
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 |
633175,4 | Q_DECLARE_OPAQUE_POINTER: Document footgun | dev | qt/qtbase | Status: MERGED | +2 | 0 |
633897,2 | Q_DECLARE_OPAQUE_POINTER: Document footgun | 6.9 | qt/qtbase | Status: MERGED | +2 | 0 |
633909,2 | Q_DECLARE_OPAQUE_POINTER: Document footgun | 6.8 | qt/qtbase | Status: MERGED | +2 | 0 |
633933,2 | Q_DECLARE_OPAQUE_POINTER: Document footgun | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |