QML2_IMPORT_PATH does not work in a profile

OpenSubmitted by Maxim Cournoyer.
Details
One participant
  • Maxim Cournoyer
Owner
unassigned
Severity
normal
M
M
Maxim Cournoyer wrote on 8 Apr 15:42 +0200
(name . bug-guix)(address . bug-guix@gnu.org)
877dlcnb9b.fsf@gmail.com
Hello Guix,
When setting up a profile (via 'guix environment', for example) todevelop a Qt application, the search paths set by qtbase point to theenvironment profile, which is a forest of symbolic links. Apparentlythis doesn't play well with at least QML2_IMPORT_PATH: the Qtapplication built in the profile will not run, and Qt crashes in aninscrutable way.
The following details a reproducer, which attempts to build jami-qt inits 'guix environment' profile.
Reproduction steps:
1. Prepare the sources
$ cp -r $(guix build -S jami-qt) /tmp/jami-qt-checkout$ cd /tmp/jami-qt-checkout$ chmod +rw -R .
2. Enter the development environment
$ guix environment jami-qt
3. Create the build directory and bootstrap the build system
$ mkdir build && cd build$ cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/install
4. Build/install it locally.
$ make -j8 install
5. Try to run it
(if on a foreign distro rather than Guix System, you'll want to startthe daemon, 'dring' from the libring package manually -- but that'sanother issue)
Toggle snippet (6 lines)$ install/bin/jami-qt --debugNo migration requiredCan't open file: "/home/maxim/.local/share/jami/d1c0b261a081d4ce/profile.vcf"Terminated
The "Can't open file" warning is harmless and not at cause.
From a preliminary investigation, it appears to be caused by the factthat the QML2_IMPORT_PATH environment variable points to a profileentry, which is a forest of symbolic links:
Toggle snippet (4 lines)$ echo $QML2_IMPORT_PATH/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml
Compared to what's in the wrapper of the jami-qt packaged binary (whichdoes run!):
Toggle snippet (4 lines)$ cat $(guix build jami-qt)/bin/jami-qt | grep QML2export QML2_IMPORT_PATH="/gnu/store/7lh6gpnv3aszlaa24az247xnnh2j8yaj-qtwebengine-5.15.2/lib/qt5/qml:/gnu/store/z9z83c3b3y655sjv3iv42pq70dwifv99-qtwebchannel-5.15.2/lib/qt5/qml:/gnu/store/xzyjqlycxwys0fq6pgs5v5n24n7zgddl-qtmultimedia-5.15.2/lib/qt5/qml:/gnu/store/ry4k8i6j3y9h4ws48jc8wsc5gky7phaj-qtdeclarative-5.15.2/lib/qt5/qml:/gnu/store/9p2xxq0cwmycf9k6rcljk8bn0d3sl2n7-qtgraphicaleffects-5.15.2/lib/qt5/qml:/gnu/store/32c7xbjmx6ijb6fl5kkbvpq2p2pxs54c-qtquickcontrols-5.15.2/lib/qt5/qml:/gnu/store/52x80xcnh912v76i09f1gaqpll5v2n73-qtquickcontrols2-5.15.2/lib/qt5/qml"
Due to having been captured at build time, where there was no profileinvolved, the individual components have been added and no symboliclinks is involved.
If we try to run our custom built jami-qt with this variable set, itproceeds a bit further:
Toggle snippet (18 lines)$ export QML2_IMPORT_PATH="/gnu/store/7lh6gpnv3aszlaa24az247xnnh2j8yaj-qtwebengine-5.15.2/lib/qt5/qml:/gnu/store/z9z83c3b3y655sjv3iv42pq70dwifv99-qtwebchannel-5.15.2/lib/qt5/qml:/gnu/store/xzyjqlycxwys0fq6pgs5v5n24n7zgddl-qtmultimedia-5.15.2/lib/qt5/qml:/gnu/store/ry4k8i6j3y9h4ws48jc8wsc5gky7phaj-qtdeclarative-5.15.2/lib/qt5/qml:/gnu/store/9p2xxq0cwmycf9k6rcljk8bn0d3sl2n7-qtgraphicaleffects-5.15.2/lib/qt5/qml:/gnu/store/32c7xbjmx6ijb6fl5kkbvpq2p2pxs54c-qtquickcontrols-5.15.2/lib/qt5/qml:/gnu/store/52x80xcnh912v76i09f1gaqpll5v2n73-qtquickcontrols2-5.15.2/lib/qt5/qml"$ install/bin/jami-qt --debugNo migration requiredCan't open file: "/home/maxim/.local/share/jami/d1c0b261a081d4ce/profile.vcf"QQmlApplicationEngine failed to load componentqrc:/src/MainApplicationWindow.qml:39:1: Type ApplicationWindow unavailablefile:///gnu/store/66w3pq3zq6dqc6khg3i0fly31i8drws7-qtquickcontrols2-5.15.2/lib/qt5/qml/QtQuick/Controls.2/qmldir: plugin cannot be loaded for module ".gnu.store.66w3pq3zq6dqc6khg3i0fly31i8drws7-qtquickcontrols2-5.15.2.lib.qt5.qml.QtQuick.Controls": Module namespace 'QtQuick.Controls' does not match import URI '.gnu.store.66w3pq3zq6dqc6khg3i0fly31i8drws7-qtquickcontrols2-5.15.2.lib.qt5.qml.QtQuick.Controls'lookup name NOT FOUND: "" "5534e909984953c9"lookup name NOT FOUND: "" "5534e909984953c9"lookup name NOT FOUND: "" "5534e909984953c9"lookup name NOT FOUND: "" "5534e909984953c9"lookup name NOT FOUND: "" "5534e909984953c9"lookup name NOT FOUND: "" "dc553d8268bba4bd"lookup name NOT FOUND: "" "dc553d8268bba4bd"NetworkManager client initialized, version: 1.24.0 , daemon running: yes , networking enabled: yesprimary network connection: faee05bd-57e1-46d1-824a-4f90a067d472 default: yes
It still fails to draw the window, probably due to the load error above,which appears to be caused by a file name mismatch between what wasregistered in the application at compile time and what is being loaded(my guess).
The QML_IMPORT_TRACE variable can also be set to get a more verboseoutput from the QML import machinery:
Toggle snippet (22 lines)$ unset QML2_IMPORT_PATH$ source $GUIX_ENVIRONMENT/etc/profile$ export QML_IMPORT_TRACE=1$ install/bin/jami-qt --debugQQmlImportDatabase::addImportPath: "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml"QQmlImportDatabase::addImportPath: "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml"QQmlImportDatabase::addImportPath: "qrc:/qt-project.org/imports"QQmlImportDatabase::addImportPath: "/tmp/jami-qt-checkout/build/install/bin"No migration requiredCan't open file: "/home/maxim/.local/share/jami/d1c0b261a081d4ce/profile.vcf"QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick" from "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick.2"QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick.Window" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick/Window.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick.Window" from "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick/Window.2"QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick.Controls" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick/Controls.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick.Controls" from "/gnu/store/6i6d2zyxbkgmw20dk1ccsnwsdlnc8431-profile/lib/qt5/qml/QtQuick/Controls.2"Terminated
An idea of something to investigate would be to review the code dealingwith importing the QML modules in the qtdeclarative sources, andensuring that it applies QDir::canonicalPath everytime it's handling animport file name (to deal with the actual file rather than a symlinkpointing to it).
Thoughts?
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 8 Apr 17:49 +0200
(address . 47655@debbugs.gnu.org)
8735w0n5dv.fsf@gmail.com
Here's a backtrace which shows where the problem occurs exactly:
Toggle snippet (230 lines)$ gdb --args install/client-qt/bin/jami-qt --debugGNU gdb (GDB) 10.1Copyright (C) 2020 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Type "show copying" and "show warranty" for details.This GDB was configured as "x86_64-unknown-linux-gnu".Type "show configuration" for configuration details.For bug reporting instructions, please see:<https://www.gnu.org/software/gdb/bugs/>.Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".Type "apropos word" to search for commands related to "word"...Reading symbols from install/client-qt/bin/jami-qt...(gdb) run Starting program: /home/mcournoyer/src/ring-project/install/client-qt/bin/jami-qt --debug[Thread debugging using libthread_db enabled]Using host libthread_db library "/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libthread_db.so.1".[New Thread 0x7fffe7ba7700 (LWP 19172)][New Thread 0x7fffdd987700 (LWP 19173)][New Thread 0x7fffd5186700 (LWP 19174)][New Thread 0x7fffdd186700 (LWP 19175)][New Thread 0x7fffdc985700 (LWP 19176)]QQmlImportDatabase::addImportPath: "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml"QQmlImportDatabase::addImportPath: "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml"QQmlImportDatabase::addImportPath: "qrc:/qt-project.org/imports"QQmlImportDatabase::addImportPath: "/home/mcournoyer/src/ring-project/install/client-qt/bin"[New Thread 0x7fffd7dff700 (LWP 19178)][New Thread 0x7fffd6bbe700 (LWP 19179)][New Thread 0x7fffd63bd700 (LWP 19180)][New Thread 0x7fffd5bbc700 (LWP 19181)][New Thread 0x7fffd4985700 (LWP 19182)][New Thread 0x7fffb7fff700 (LWP 19183)][New Thread 0x7fffb77fe700 (LWP 19184)][Detaching after fork from child process 19185]No accounts to migrate[New Thread 0x7fffb6ffd700 (LWP 19186)]QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick" from "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick.2"QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick.Window" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick/Window.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick.Window" from "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick/Window.2"QQmlImports(qrc:/src/MainApplicationWindow.qml)::addLibraryImport: "QtQuick.Controls" 2.14 as ""QQmlImports(qrc:/src/MainApplicationWindow.qml)::importExtension: loaded "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick/Controls.2/qmldir"QQmlImportDatabase::registerPluginTypes: "QtQuick.Controls" from "/gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/qt5/qml/QtQuick/Controls.2"
Thread 7 "QQmlThread" received signal SIGSEGV, Segmentation fault.[Switching to Thread 0x7fffd7dff700 (LWP 19178)]0x00007ffff7f4c829 in QListData::size (this=0x7fffc0090438) at /gnu/store/g14mn8v8gh48m7fp2i12yalc7bgj8jgf-qtbase-5.15.2/include/qt5/QtCore/qlist.h:115115 inline int size() const noexcept { return int(d->end - d->begin); } // q6sizetype(gdb) bt -full#0 0x00007ffff7f4c829 in QListData::size (this=0x7fffc0090438) at /gnu/store/g14mn8v8gh48m7fp2i12yalc7bgj8jgf-qtbase-5.15.2/include/qt5/QtCore/qlist.h:115No locals.#1 QList<QString>::count (this=0x7fffc0090438) at /gnu/store/g14mn8v8gh48m7fp2i12yalc7bgj8jgf-qtbase-5.15.2/include/qt5/QtCore/qlist.h:359No locals.#2 QQuickStyleSelector::select (this=<optimized out>, fileName=...) at qquickstyleselector.cpp:138 d = <optimized out> to = <optimized out>#3 0x00007ffff7f4bddf in QQuickStylePlugin::resolvedUrl (this=this@entry=0x7fffc008d310, fileName=...) at qquickstyleplugin.cpp:88 d = <optimized out>#4 0x00007fffd52c2210 in QtQuickControls2Plugin::registerTypes (this=0x7fffc008d310, uri=0x7fffc008d178 "QtQuick.Controls") at qtquickcontrols2plugin.cpp:132 style = {static null = {<No data fields>}, d = 0x7fffef1c48e0 <qt_array>} theme = 0x7fffc008d1c0 stylePlugins = {<QListSpecialMethods<QQuickStylePlugin*>> = {<No data fields>}, {p = { static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = { static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc008f4c0}, d = 0x7fffc008f4c0}} import = {d = <optimized out>}#5 0x00007fffef7f0dea in QQmlMetaType::registerPluginTypes (instance=instance@entry=0x7fffc008d310, basePath=..., uri=..., typeNamespace=..., vmaj=vmaj@entry=2, errors=errors@entry=0x7fffd7dfe460) at qml/qqmlmetatype.cpp:732 iface = <optimized out> bytes = {d = 0x7fffc008d160} moduleId = <optimized out> failureRecorder = { data = 0x7fffef9d76c0 <(anonymous namespace)::Q_QGS_metaTypeData::innerFunction()::holder>} failures = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = { static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = { static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}, <No data fields>} data = {locker = {val = 140737213462185}, data = 0x7fffef9d76c0 <(anonymous namespace)::Q_QGS_metaTypeData::innerFunction()::holder>}#6 0x00007fffef8331c0 in registerPluginTypes (instance=instance@entry=0x7fffc008d310, basePath=..., uri=..., typeNamespace=..., vmaj=vmaj@entry=2, errors=errors@entry=0x7fffd7dfe460) at qml/qqmlimport.cpp:2165No locals.#7 0x00007fffef83621e in QQmlImportDatabase::importDynamicPlugin (this=this@entry=0x6e1e88, filePath=..., uri=..., typeNamespace=..., vmaj=vmaj@entry=2, errors=errors@entry=0x7fffd7dfe460) at qml/qqmlimport.cpp:2282 plugin = {uri = {static null = {<No data fields>}, d = 0x7fffc0008a70}, loader = 0x7fffc008c9a0} loader = 0x7fffc008c9a0 plugins = <optimized out> lock = {val = 140737213470985} typesRegistered = <optimized out> fileInfo = {d_ptr = {d = 0x8a0bb0}} absoluteFilePath = {static null = {<No data fields>}, d = 0x7fffc008caf0} instance = <optimized out> engineInitialized = <optimized out>#8 0x00007fffef839c12 in QQmlImportsPrivate::importExtension (this=this@entry=0x8a0b50, qmldirFilePath=..., uri=..., vmaj=vmaj@entry=2, vmin=vmin@entry=14, database=database@entry=0x6e1e88, qmldir=..., errors=0x7fffd7dfe460) at qml/qqmlimport.cpp:1221 resolvedFilePath = {static null = {<No data fields>}, d = 0x7fffc008caf0} plugin = <optimized out>--Type <RET> for more, q to quit, c to continue without paging--c __for_range = @0x7fffd7dfdfa0: {<QListSpecialMethods<QQmlDirParser::Plugin>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc0090c30}, d = 0x7fffc0090c30}} __for_begin = {i = <optimized out>} __for_end = {i = <optimized out>} typeNamespace = {static null = {<No data fields>}, d = 0x7fffc008c7b0} qmldirPath = {static null = {<No data fields>}, d = 0x7fffc0085750} slash = <optimized out> dynamicPluginsFound = <optimized out> staticPluginsFound = 0 qmldirPlugins = {<QListSpecialMethods<QQmlDirParser::Plugin>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc0090c30}, d = 0x7fffc0090c30}} qmldirPluginCount = <optimized out>#9 0x00007fffef83a930 in QQmlImportsPrivate::addLibraryImport (this=0x8a0b50, uri=..., prefix=..., vmaj=vmaj@entry=2, vmin=vmin@entry=14, qmldirIdentifier=..., qmldirUrl=..., incomplete=false, database=0x6e1e88, errors=0x7fffd7dfe460) at qml/qqmlimport.cpp:1571 qmldir = {m_parser = {_errors = {<QListSpecialMethods<QQmlJS::DiagnosticMessage>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}, _typeNamespace = {static null = {<No data fields>}, d = 0x7fffc008c7b0}, _components = {<QHash<QString, QQmlDirParser::Component>> = {{d = 0x7fffef1c5380 <QHashData::shared_null>, e = 0x7fffef1c5380 <QHashData::shared_null>}}, <No data fields>}, _dependencies = {{d = 0x7fffc0090c80, e = 0x7fffc0090c80}}, _imports = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}, <No data fields>}, _scripts = {<QListSpecialMethods<QQmlDirParser::Script>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}, _plugins = {<QListSpecialMethods<QQmlDirParser::Plugin>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffc0090c30}, d = 0x7fffc0090c30}}, _designerSupported = true, _typeInfos = {<QListSpecialMethods<QQmlDirParser::TypeInfo>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}, _className = {static null = {<No data fields>}, d = 0x7fffc0090cc0}}, m_location = {static null = {<No data fields>}, d = 0x7fffc0084940}, m_hasContent = true} nameSpace = 0x8a0b68 inserted = <optimized out>#10 0x00007fffef83aa76 in QQmlImports::addLibraryImport (this=this@entry=0x8a1268, importDb=importDb@entry=0x6e1e88, uri=..., prefix=..., vmaj=2, vmin=14, qmldirIdentifier=..., qmldirUrl=..., incomplete=false, errors=0x7fffd7dfe460) at qml/qqmlimport.cpp:1830No locals.#11 0x00007fffef80c3bc in QQmlTypeLoader::Blob::addImport (this=this@entry=0x8a1200, import=std::shared_ptr<QQmlTypeLoader::Blob::PendingImport> (use count 1, weak count 0) = {...}, errors=errors@entry=0x7fffd7dfe460) at qml/qqmltypeloader.cpp:586 qmldirFilePath = {static null = {<No data fields>}, d = 0x7fffc0084940} qmldirUrl = {static null = {<No data fields>}, d = 0x7fffc008c590} qmldirResult = QQmlImports::QmldirFound importDatabase = 0x6e1e88#12 0x00007fffef80c9b7 in QQmlTypeLoader::Blob::addImport (this=this@entry=0x8a1200, import=import@entry=0x7fffc0015220, errors=errors@entry=0x7fffd7dfe460) at qml/qqmltypeloader.cpp:562No locals.#13 0x00007fffef7b620e in QQmlTypeData::continueLoadFromIR (this=this@entry=0x8a1200) at qml/qqmltypedata.cpp:703 import = 0x7fffc0015220 __for_range = <optimized out> __for_begin = {i = <optimized out>} __for_end = {i = <optimized out>} containingType = {d = {o = 0x0}} containingTypeName = {static null = {<No data fields>}, d = 0x7fffc000bde0} major = -1 minor = -1 ns = 0x0 errors = {<QListSpecialMethods<QQmlError>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fffef1c5410 <QListData::shared_null>}, d = 0x7fffef1c5410 <QListData::shared_null>}}#14 0x00007fffef7bb354 in QQmlTypeData::dataReceived (this=0x8a1200, data=...) at qml/qqmltypedata.cpp:601No locals.#15 0x00007fffef80718c in QQmlTypeLoader::setData (this=this@entry=0x6e1ed8, blob=blob@entry=0x8a1200, d=...) at qml/qqmltypeloader.cpp:447 prof = {<QQmlProfilerHelper> = {<QQmlProfilerDefinitions> = {<No data fields>}, profiler = 0x0}, <No data fields>}#16 0x00007fffef8074c4 in QQmlTypeLoader::setData (this=this@entry=0x6e1ed8, blob=blob@entry=0x8a1200, fileName=...) at qml/qqmltypeloader.cpp:437 d = {inlineSourceCode = {static null = {<No data fields>}, d = 0x7fffef1c4940 <QArrayData::shared_null>}, fileInfo = {d_ptr = {d = 0x7fffc0004f50}}, hasInlineSourceCode = false}#17 0x00007fffef8079d5 in QQmlTypeLoader::loadThread (this=0x6e1ed8, blob=blob@entry=0x8a1200) at qml/qqmltypeloader.cpp:299 fileName = {static null = {<No data fields>}, d = 0x7fffc0003400}#18 0x00007fffef7c4d7d in QQmlTypeLoaderThread::loadThread (this=<optimized out>, b=0x8a1200) at qml/qqmltypeloaderthread.cpp:162No locals.#19 0x00007fffef885796 in QQmlThreadPrivate::threadEvent (this=0x6bc840) at qml/ftw/qqmlthread.cpp:198 message = <optimized out>#20 0x00007fffef885eea in QQmlThreadPrivate::event (this=0x6bc840, e=0x8a0210) at qml/ftw/qqmlthread.cpp:142No locals.#21 0x00007ffff715ac3c in QApplicationPrivate::notify_helper (this=this@entry=0x666140, receiver=receiver@entry=0x6bc840, e=e@entry=0x8a0210) at kernel/qapplication.cpp:3632 consumed = false filtered = false#22 0x00007ffff716157f in QApplication::notify (this=0x7fffffffd070, receiver=0x6bc840, e=0x8a0210) at kernel/qapplication.cpp:3156 w = <optimized out> wheel = <optimized out> spontaneous = <optimized out> phase = <optimized out> d = <optimized out> res = false#23 0x00007fffef0d1373 in QCoreApplication::notifyInternal2 (receiver=0x6bc840, event=0x8a0210) at kernel/qcoreapplication.cpp:1063 selfRequired = true result = false cbdata = {0x6bc840, 0x8a0210, 0x7fffd7dfe7ff} d = <optimized out> threadData = <optimized out> scopeLevelCounter = {threadData = 0x6d8560}#24 0x00007fffef0d152e in QCoreApplication::sendEvent (receiver=receiver@entry=0x6bc840, event=event@entry=0x8a0210) at kernel/qcoreapplication.cpp:1458No locals.#25 0x00007fffef0d4521 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x6d8560) at kernel/qcoreapplication.cpp:1817 e = 0x8a0210 pe = <optimized out> r = 0x6bc840 relocker = {m_func = {__locker = @0x7fffd7dfe880}, m_invoke = true} event_deleter = {d = 0x8a0210} locker = {_M_device = 0x6d8590, _M_owns = false} startOffset = 0 i = @0x6d8584: 1 cleanup = {receiver = 0x0, event_type = 0, data = 0x6d8560, exceptionCaught = true}#26 0x00007fffef0d4b18 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1676 data = <optimized out>#27 0x00007fffef130d53 in postEventSourceDispatch (s=0x7fffc0004bb0) at kernel/qeventdispatcher_glib.cpp:277 source = 0x7fffc0004bb0#28 0x00007ffff769deda in g_main_context_dispatch () from /gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/libglib-2.0.so.0No symbol table info available.#29 0x00007ffff769e0d8 in g_main_context_iterate.isra () from /gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/libglib-2.0.so.0No symbol table info available.#30 0x00007ffff769e15c in g_main_context_iteration () from /gnu/store/rczz1sz7vffvrmwn7i5n2a9909xny3rl-profile/lib/libglib-2.0.so.0No symbol table info available.#31 0x00007fffef13044c in QEventDispatcherGlib::processEvents (this=0x7fffc0000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x7fffc0000b80 canWait = true savedFlags = {i = 0} result = <optimized out>#32 0x00007fffef0cfd2a in QEventLoop::exec (this=this@entry=0x7fffd7dfeab0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:232 d = 0x7fffc0003690 threadData = <optimized out> locker = {val = 7082872} ref = {d = 0x7fffc0003690, locker = @0x7fffd7dfea48, exceptionCaught = true} app = <optimized out>#33 0x00007fffeeee9bd7 in QThread::exec (this=this@entry=0x6bc840) at thread/qthread.cpp:547 d = 0x6c1320 locker = {val = 7082872} eventLoop = {<QObject> = {_vptr.QObject = 0x7fffef3b0268 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fffef2a6580 <qt_meta_stringdata_QObject>, data = 0x7fffef2a6460 <qt_meta_data_QObject>, static_metacall = 0x7fffef10ac80 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7fffc0003690}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fffef2a9520 <qt_meta_stringdata_Qt>, data = 0x7fffef2a66a0 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7fffef3a7ae0 <QObject::staticMetaObject>}, stringdata = 0x7fffef2a0d00 <qt_meta_stringdata_QEventLoop>, data = 0x7fffef2a0ca0 <qt_meta_data_QEventLoop>, static_metacall = 0x7fffef0cfa30 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out>#34 0x00007fffef885465 in QQmlThreadPrivate::run (this=0x6bc840) at qml/ftw/qqmlthread.cpp:155No locals.#35 0x00007fffeeeeaff9 in QThreadPrivate::start (arg=0x6bc840) at thread/qthread_unix.cpp:329 thr = 0x6bc840 data = <optimized out> __clframe = {__cancel_routine = 0x7fffeeeea470 <QThreadPrivate::finish(void*)>, __cancel_arg = 0x6bc840, __do_it = 1, __cancel_type = <optimized out>}#36 0x00007fffee921f64 in start_thread () from /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libpthread.so.0No symbol table info available.#37 0x00007fffeea319af in clone () from /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6No symbol table info available.
It crashes in the QtQuickControls2 plugin registration code. Perhapsthe fix could be local to that, else applied globally toQQmlMetaType::registerPluginTypes (which is in qtdeclarative).
Maxim
?