Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
Hello, I tried to reproduce this inside a minimal stable/bookworm VM and received a qmlcachegen crash. See attached file for details. The resulting backtrace is quite similar to that found in: https://bugreports.qt.io/browse/QTBUG-117361 Might avoid the crash, but cannot say if this would make the build succeed. Kind regards, Bernhard # 2024-04-02 stable/bookworm amd64 qemu VM apt install systemd-coredump gdb libqt6qmlcompiler6-dbgsym apt build-dep qt6-virtualkeyboard mkdir /home/benutzer/source/qt6-virtualkeyboard/orig -p cd/home/benutzer/source/qt6-virtualkeyboard/orig apt source qt6-virtualkeyboard cd /home/benutzer/source/qt6-virtualkeyboard cp orig try1 -a cd try1/qt6-virtualkeyboard-6.4.2+dfsg DEB_BUILD_OPTIONS=parallel=1 dpkg-buildpackage ... [110/301] cd /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components && /usr/bin/cmake -E make_directory /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache && /usr/lib/qt6/libexec/qmlcachegen --bare --resource-path /qt-project.org/imports/QtQuick/VirtualKeyboard/Components/Keyboard.qml -I /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml -I /usr/lib/x86_64-linux-gnu/qt6/qml -i /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml/QtQuick/VirtualKeyboard/Components/qmldir --resource /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmake_QtQuick_VirtualKeyboard_Components.qrc --resource /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qtvkbcomponentsplugin_raw_qml_0.qrc -o /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/src/components/Keyboard.qml FAILED: src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp cd /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components && /usr/bin/cmake -E make_directory /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache && /usr/lib/qt6/libexec/qmlcachegen --bare --resource-path /qt-project.org/imports/QtQuick/VirtualKeyboard/Components/Keyboard.qml -I /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml -I /usr/lib/x86_64-linux-gnu/qt6/qml -i /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml/QtQuick/VirtualKeyboard/Components/qmldir --resource /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmake_QtQuick_VirtualKeyboard_Components.qrc --resource /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qtvkbcomponentsplugin_raw_qml_0.qrc -o /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /home/benutzer/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg/src/components/Keyboard.qml Segmentation fault (core dumped) ninja: build stopped: subcommand failed. dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 make: *** [debian/rules:8: binary] Fehler 1 dpkg-buildpackage: Fehler: Unterprozess debian/rules binary lieferte Exitstatus 2 benutzer@debian:~/source/qt6-virtualkeyboard/try1/qt6-virtualkeyboard-6.4.2+dfsg$ dmesg [ 431.390156] qmlcachegen[5680]: segfault at 0 ip 7fde080d0672 sp 7ffe33185b60 error 4 in libQt6QmlCompiler.so.6.4.2[7fde0804d000+106000] likely on CPU 5 (core 5, socket 0) [ 431.390173] Code: 64 cd f7 ff 0f 1f 40 00 41 57 41 56 41 55 41 54 55 48 89 fd 53 48 89 f3 48 83 ec 28 64 48 8b 04 25 28 00 00 00 48 89 44 24 18 <48> 8b 06 48 c7 06 00 00 00 00 4c 8b 27 48 89 07 4d 85 e4 74 10 4c journalctl -e Apr 02 22:45:36 debian systemd-coredump[5682]: [] Process 5680 (qmlcachegen) of user 1000 dumped core. Stack trace of thread 5680: #0 0x7fde080d0672 n/a (libQt6QmlCompiler.so.6 + 0xa8672)
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
# This still happens in bookworm found 1040496 6.4.2+dfsg-1 thanks Hi. If this was a failure in the tests, the end user could enable "nocheck" to get working binaries, but in this case the failure happens in dh_auto_build and there is no "escape". For that reason I think the implemented workaround should be present in stable as well. Thanks.
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
On Wed, Jul 26, 2023 at 06:44:17AM +0200, Helmut Grohne wrote: >... > Let me clarify my view on this. I see a failure to build from source > when passing parallel=1 as an RC bug. >... FTR, RC is only: Packages must autobuild without failure on all architectures on which they are supported. Debian has not had single-core buildds for release architectures for many years, and it's unlikely it will ever have again. A few years ago there was some discussion around this topic of single-core building (see #932795), which is not considered RC for exactly this reason. Another comparison would be nocheck, a different non-standard option that causes you trouble when it's broken in a package - but this is also not an RC bug since it is not used on buildds of release architectures. Note that in all these cases "not an RC bug" does not change the fact that it "is a bug". > Helmut cu Adrian [1] https://release.debian.org/testing/rc_policy.txt
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
Hi Helmut! El miércoles, 26 de julio de 2023 01:44:17 -03 Helmut Grohne escribió: > Hi Lisandro, > > On Tue, Jul 25, 2023 at 09:23:14PM -0300, Lisandro Damian Nicanor Perez Meyer > wrote: > > As discussed on IRC I am hacking around this in qt6-virtualkeyboard > > 6.4.2+dfsg-3 so parallel is at least 2. I personally do not think this is > > an > > RC bug, but at least we have a way to avoid the FTBFS for the time being. > > Let me clarify my view on this. I see a failure to build from source > when passing parallel=1 as an RC bug. To me RC means "not fit for releasing", including "does not build in our infra". The fact that using parallel >1 makes it work (we have a workaround) and that our infra does not suffers from this bug means, in my point of view, that it is not RC. The final result when built in our infra is still a perfectly usable piece of software. > However, I do not see a failure to > honour the requested parallelity as an important bug. When I request > parallel=1 and your package successfully performs a parallel build, > that's not an important bug in my view. There are a number of packages > in the archive doing this. As long as your workaround does not cause > random FTBFS (e.g. on slower buildds), I think it adequately addresses > the issue I raised and I'm happy with you closing the bug. > > Leaving that aside, an unexplained segfault during build is probably > worth investigation (though not an RC bug either). > > Is this something you can agree to? Well, a segfault that only happens on certain conditions that are hard to replicate (I could not debug it, it only happened for me on sbuild) and come from parallelism _are_ important, but complicated to debug. Now at the same time I tried a 6.5.1 build with parallel=1 on sbuild (one I have for private purposes) and the build worked for me. So this seems to be an upstream bug that it is probably fixed by upstream already. At this point I prefer to simply use my scarce free time to try and package a newer Qt rather than trying to dig more into this issue. So, I think that, for the time being, keeping the severity in important + checking that parallel >= 2 is a good compromise solution. Now if we can replicate this in Qt >= 6.5.x then something else is going on and requires further checking. signature.asc Description: This is a digitally signed message part.
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
Hi Lisandro, On Tue, Jul 25, 2023 at 09:23:14PM -0300, Lisandro Damian Nicanor Perez Meyer wrote: > As discussed on IRC I am hacking around this in qt6-virtualkeyboard > 6.4.2+dfsg-3 so parallel is at least 2. I personally do not think this is an > RC bug, but at least we have a way to avoid the FTBFS for the time being. Let me clarify my view on this. I see a failure to build from source when passing parallel=1 as an RC bug. However, I do not see a failure to honour the requested parallelity as an important bug. When I request parallel=1 and your package successfully performs a parallel build, that's not an important bug in my view. There are a number of packages in the archive doing this. As long as your workaround does not cause random FTBFS (e.g. on slower buildds), I think it adequately addresses the issue I raised and I'm happy with you closing the bug. Leaving that aside, an unexplained segfault during build is probably worth investigation (though not an RC bug either). Is this something you can agree to? Helmut
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
severity 1040496 important thanks As discussed on IRC I am hacking around this in qt6-virtualkeyboard 6.4.2+dfsg-3 so parallel is at least 2. I personally do not think this is an RC bug, but at least we have a way to avoid the FTBFS for the time being. My tests with Qt 6.5 showed no issue, so hopefully we are going to get this cleaned up soon. Regards, Lisandro. signature.asc Description: This is a digitally signed message part.
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
On sábado, 8 de julio de 2023 12:27:34 -03 Lisandro Damián Nicanor Pérez Meyer wrote: > Hi, > > On Thu, 6 Jul 2023 at 14:30, Helmut Grohne wrote: > > Source: qt6-virtualkeyboard > > Version: 6.4.2+dfsg-2 > > Severity: serious > > Tags: ftbfs > > > > qt6-virtualkeyboard fails to build from source in unstable when passing > > > DEB_BUILD_OPTIONS=parallel=1. A build ends as follows: > Interestingly enough I could only reproduce the issue by using sbuild. > If I hand compile it using dpkg-buildpackage directly on a clean > machine things just work. More info: I did a build of qt6-virtualkeyboard on 6.5.1 with parallel=1 with no issues... but at the same time not the fully proper environment, because it was an sbuild build using Ubuntu focal and some special Qt build I have at hand. But maybe the answer is there. signature.asc Description: This is a digitally signed message part.
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
Hi, On Thu, 6 Jul 2023 at 14:30, Helmut Grohne wrote: > > Source: qt6-virtualkeyboard > Version: 6.4.2+dfsg-2 > Severity: serious > Tags: ftbfs > > qt6-virtualkeyboard fails to build from source in unstable when passing > DEB_BUILD_OPTIONS=parallel=1. A build ends as follows: Interestingly enough I could only reproduce the issue by using sbuild. If I hand compile it using dpkg-buildpackage directly on a clean machine things just work. -- Lisandro Damián Nicanor Pérez Meyer https://perezmeyer.com.ar/
Bug#1040496: qt6-virtualkeyboard FTBFS with parallel=1: qmlcachegen segfaults
Source: qt6-virtualkeyboard Version: 6.4.2+dfsg-2 Severity: serious Tags: ftbfs qt6-virtualkeyboard fails to build from source in unstable when passing DEB_BUILD_OPTIONS=parallel=1. A build ends as follows: | [110/301] cd /<>/obj-x86_64-linux-gnu/src/components && /usr/bin/cmake -E make_directory /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache && /usr/lib/qt6/libexec/qmlcachegen --bare --resource-path /qt-project.org/imports/QtQuick/VirtualKeyboard/Components/Keyboard.qml -I /<>/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml -I /usr/lib/x86_64-linux-gnu/qt6/qml -i /<>/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml/QtQuick/VirtualKeyboard/Components/qmldir --resource /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmake_QtQuick_VirtualKeyboard_Components.qrc --resource /<>/obj-x86_64-linux-gnu/src/components/.rcc/qtvkbcomponentsplugin_raw_qml_0.qrc -o /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /<>/src/components/Keyboard.qml | FAILED: src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp | cd /<>/obj-x86_64-linux-gnu/src/components && /usr/bin/cmake -E make_directory /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache && /usr/lib/qt6/libexec/qmlcachegen --bare --resource-path /qt-project.org/imports/QtQuick/VirtualKeyboard/Components/Keyboard.qml -I /<>/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml -I /usr/lib/x86_64-linux-gnu/qt6/qml -i /<>/obj-x86_64-linux-gnu/lib/x86_64-linux-gnu/qt6/qml/QtQuick/VirtualKeyboard/Components/qmldir --resource /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmake_QtQuick_VirtualKeyboard_Components.qrc --resource /<>/obj-x86_64-linux-gnu/src/components/.rcc/qtvkbcomponentsplugin_raw_qml_0.qrc -o /<>/obj-x86_64-linux-gnu/src/components/.rcc/qmlcache/qtvkbcomponentsplugin_Keyboard_qml.cpp /<>/src/components/Keyboard.qml | Segmentation fault (core dumped) | ninja: build stopped: subcommand failed. | dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j1 -v returned exit code 1 | make: *** [debian/rules:12: binary] Error 25 | dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 This originally was a cross build failure, but it also reproduces natively. Therefore, I know that it also fails on an arm64 machine. In all of my testing, all parallel=1 builds reliably failed while all builds that weren't parallel=1 succeeded (cross or native). This is not necessarily a bug in qt6-virtualkeyboard itself. I'll leave it up to you to reassign as necessary. Helmut