Summary: | dev-qt/qtdeclarative-6.6.1 - FAILED: .../24bittextmask.frag.qsb | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ionen, sam, sandbox |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=915695 https://bugs.gentoo.org/show_bug.cgi?id=923013 |
||
Whiteboard: | fixed in qtbase-6.6.1-r1 | ||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 914580 | ||
Attachments: |
emerge-info.txt
dev-qt:qtdeclarative-6.6.1:20231127-145643.log emerge-history.txt environment etc.clang.tar.xz etc.portage.tar.xz qlist-info.txt temp.tar.xz |
Description
Toralf Förster
![]() Created attachment 875821 [details]
emerge-info.txt
Created attachment 875822 [details]
dev-qt:qtdeclarative-6.6.1:20231127-145643.log
Created attachment 875823 [details]
emerge-history.txt
Created attachment 875824 [details]
environment
Created attachment 875825 [details]
etc.clang.tar.xz
Created attachment 875826 [details]
etc.portage.tar.xz
Created attachment 875827 [details]
qlist-info.txt
Created attachment 875828 [details]
temp.tar.xz
tentatively blocking gcc-14 can't yet reproduce it (In reply to Sam James from comment #10) > can't yet reproduce it Just gave it a quick try as well by building the whole Qt stack with gcc:14, but can't reproduce either (clang/musl is fine too). I did triple-check that the SIGSTKSZ from bug #915695 is there in 6.6.1 (did remove the old [8192] patch, SIGSTKSZ gives me 8192 too) so I'd assume it's not the return of the same bug, but who knows if there's something more to it that only specific people will be able to reproduce again. On a side-note, I wish this was using samurai because samurai was actually able to display that it was a segfault for people hitting bug #915695. Ninja shows nothing, so can't be sure what happened (doesn't help that Qt sends qsb output to /dev/null because it's noisy, see patch at bug #915695 comment #2). With samu: ``` [441/3069] cd /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes && /usr/lib64/qt6/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -D USE_DERIVATIVES -o /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes/.qsb/shaders_ng/shapecurve_derivatives.vert.qsb /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1/src/quickshapes/shaders_ng/shapecurve.vert samu: job terminated due to signal 11: cd /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes && /usr/lib64/qt6/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -o /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes/.qsb/shaders_ng/wireframe.vert.qsb /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1/src/quickshapes/shaders_ng/wireframe.vert samu: job terminated due to signal 11: cd /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes && /usr/lib64/qt6/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -D RADIALGRADIENT -D USE_DERIVATIVES -o /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes/.qsb/shaders_ng/shapecurve_rg_derivatives.frag.qsb /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1/src/quickshapes/shaders_ng/shapecurve.frag [...] ``` In dmesg: ``` [83316.496939] Code: Unable to access opcode bytes at 0xffffffffffffffd6. [83316.497917] qsb[27695]: segfault at 0 ip 0000000000000000 sp 00007ffd3f9c39b0 error 14 in qsb[55f447e36000+4000] likely on CPU 10 (core 2, socket 0) [83316.497925] Code: Unable to access opcode bytes at 0xffffffffffffffd6. [83316.498824] qsb[27701]: segfault at 0 ip 0000000000000000 sp 00007ffdf200ad70 error 14 in qsb[56425a731000+4000] likely on CPU 2 (core 2, socket 0) [83316.498832] Code: Unable to access opcode bytes at 0xffffffffffffffd6. [83316.499600] qsb[27698]: segfault at 0 ip 0000000000000000 sp 00007ffdb3068690 error 14 in qsb[562a4c4a6000+4000] likely on CPU 0 (core 0, socket 0) [83316.499609] Code: Unable to access opcode bytes at 0xffffffffffffffd6. [83316.500039] qsb[27683]: segfault at 0 ip 0000000000000000 sp 00007ffe64af68d0 error 14 in qsb[559657f8d000+4000] likely on CPU 15 (core 7, socket 0) [83316.500048] Code: Unable to access opcode bytes at 0xffffffffffffffd6. ``` Works for me when running as root, fails under sandbox. ``` /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes # (cd /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes && /usr/lib64/qt6/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -D USE_DERIVATIVES -o /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes/.qsb/shaders_ng//shapecurve_derivatives.vert.qsb /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1/src/quickshapes/shaders_ng/shapecurve.vert) ; echo $? 0 ``` ``` /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes # sandbox ============================= Gentoo path sandbox ============================== Detection of the support files. Verification of the required files. Setting up the required environment variables. The protected environment has been started. -------------------------------------------------------------------------------- Process being started in forked instance. /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes # (cd /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes && /usr/lib64/qt6/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -D USE_DERIVATIVES -o /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1_build/src/quickshapes/.qsb/shaders_ng//shapecurve_derivatives.vert.qsb /var/tmp/portage/portage/dev-qt/qtdeclarative-6.6.1/work/qtdeclarative-everywhere-src-6.6.1/src/quickshapes/shaders_ng/shapecurve.vert) Segmentation fault (core dumped) ``` stack is hosed and coredump is completely useless we blow up in system_vforkfd (again) ``` #0 system_vforkfd (system=<synthetic pointer>, token=0x7fffffffd280, childFn=0x7ffff67214a0 <_FUN(void*)>, ppid=0x5555555b6968, flags=0x1) at /usr/src/debug/dev-qt/qtbase-6.6.1/qtbase-everywhere-src-6.6.1/src/corelib/io/../../3rdparty/forkfd/forkfd_linux.c:162 #1 vforkfd (flags=0x1, ppid=0x5555555b6968, childFn=0x7ffff67214a0 <_FUN(void*)>, token=0x7fffffffd280) at /usr/src/debug/dev-qt/qtbase-6.6.1/qtbase-everywhere-src-6.6.1/src/corelib/io/../../3rdparty/forkfd/forkfd.c:814 #2 0x00007ffff6722d41 in QProcessPrivate::startProcess (this=0x5555555b66d0) at /usr/src/debug/dev-qt/qtbase-6.6.1/qtbase-everywhere-src-6.6.1/src/corelib/io/qprocess_unix.cpp:607 #3 0x000055555555f781 in runProcess (binary=..., arguments=..., output=output@entry=0x7fffffffd8f0, errorOutput=errorOutput@entry=0x7fffffffd910) at /usr/include/qt6/QtCore/qflags.h:74 #4 0x000055555555ca88 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dev-qt/qtshadertools-6.6.1/qtshadertools-everywhere-src-6.6.1/tools/qsb/qsb.cpp:783 ``` ``` (gdb) p SIGSTKSZ $6 = 0x38c0 ``` then explodes when we call clone There's no portable way on Linux to figure out how much stack you've got left but I'm not even sure what we're supposed to do here, either, as SIGSTKSZ is still just a recommendation: ``` commit 17cef890c95a71671ec80b1daac88aef7ca46a90 Author: H.J. Lu <hjl.tools@gmail.com> Date: Sat Jul 10 10:56:50 2021 -0700 support: Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ Replace _SC_MINSIGSTKSZ with _SC_SIGSTKSZ since sysconf (_SC_MINSIGSTKSZ) returns the minimum number of bytes of free stack space required in order to guarantee successful, non-nested handling of a single signal whose handler is an empty function while sysconf (_SC_SIGSTKSZ) returns the suggested minimum number of bytes of stack space required for a signal stack. Reviewed-by: Carlos O'Donell <carlos@redhat.com> ``` gnulib ended up just doing 64kb. We should probably do at least 32k like floppym mentioned in the original upstream review (https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/spawni.c#l354, https://codereview.qt-project.org/c/qt/qtbase/+/513140/comments/779b80a3_f5f0247c). *** Bug 918712 has been marked as a duplicate of this bug. *** (In reply to Sam James from comment #16) > gnulib ended up just doing 64kb. We should probably do at least 32k like > floppym mentioned in the original upstream review Guess I'll go ahead and do 32k downstream now and see if these stop. The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=313ee5bd17f851405ea0f9176797bc7355a9e648 commit 313ee5bd17f851405ea0f9176797bc7355a9e648 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2023-11-29 04:44:24 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2023-11-29 05:36:15 +0000 dev-qt/qtbase: re-add forkfd stacksize patch but with 32k Bug: https://bugs.gentoo.org/918664 Bug: https://bugs.gentoo.org/915695 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> .../qtbase-6.6.1-forkfd-childstack-size.patch | 23 ++++++++++++++++++++++ ...{qtbase-6.6.1.ebuild => qtbase-6.6.1-r1.ebuild} | 1 + dev-qt/qtbase/qtbase-6.6.9999.ebuild | 1 + dev-qt/qtbase/qtbase-6.9999.ebuild | 1 + 4 files changed, 26 insertions(+) built fine, thanks! (In reply to Sam James from comment #20) > built fine, thanks! Thanks, guess I'll close and see if get new bugs. |