Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 946202 - dev-qt/qtbase-6.8.1 fails tst_qaccessibility test when built with clang19
Summary: dev-qt/qtbase-6.8.1 fails tst_qaccessibility test when built with clang19
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 915000
  Show dependency tree
 
Reported: 2024-12-10 12:39 UTC by Paolo Pedroni
Modified: 2024-12-21 07:07 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
qtbase-6.8.1:20241210-094611.log.gz (qtbase-6.8.1:20241210-094611.log.gz,374.49 KB, application/gzip)
2024-12-10 12:39 UTC, Paolo Pedroni
Details
LastTest.log.gz (LastTest.log.gz,637.27 KB, application/gzip)
2024-12-10 12:41 UTC, Paolo Pedroni
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Paolo Pedroni 2024-12-10 12:39:44 UTC
Created attachment 913726 [details]
qtbase-6.8.1:20241210-094611.log.gz

444/463 Test #449: tst_gestures ....................................   Passed    5.05 sec
445/463 Test #455: tst_qaccessibility ..............................***Failed    5.06 sec
446/463 Test #407: tst_qabstractbutton .............................   Passed   10.79 sec
[...]
99% tests passed, 1 tests failed out of 463
[...]
The following tests FAILED:
        455 - tst_qaccessibility (Failed)
Errors while running CTest
Output from these tests are in: /var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
 * ERROR: dev-qt/qtbase-6.8.1::gentoo failed (test phase):
 *   Tests failed. When you file a bug, please attach the following file: 
 *      /var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/Testing/Temporary/LastTest.log

Relevant part of LastTest.log says:
455/463 Testing: tst_qaccessibility
455/463 Test: tst_qaccessibility
Command: "/usr/bin/cmake" "-P" "/var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/tests/auto/other/qaccess
ibility/tst_qaccessibilityWrapperRelWithDebInfo.cmake"
Directory: /var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/tests/auto/other/qaccessibility
"tst_qaccessibility" start time: Dec 10 09:51 UTC
Output:
----------------------------------------------------------
********* Start testing of tst_QAccessibility *********
Config: Using QtTest library 6.8.1, Qt 6.8.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 19.1.4), gentoo 2.17
[...]
PASS   : tst_QAccessibility::mdiAreaTest()
FAIL!  : tst_QAccessibility::mdiSubWindowTest() Compared values are not the same
   Actual   : interface->state()
   Expected : state
   Loc: [/var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1/tests/auto/other/qaccessibility/tst_qaccessibility.cpp(2037)]
QWARN  : tst_QAccessibility::mdiSubWindowTest() 46 accessibility event(s) were not handled in testfunction 'mdiSubWindowTest':
[...]
Totals: 219 passed, 1 failed, 0 skipped, 0 blacklisted, 5034ms
********* Finished testing of tst_QAccessibility *********
CMake Error at tst_qaccessibilityWrapperRelWithDebInfo.cmake:18 (message):
  
  /var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/tests/auto/other/qaccessibility/tst_qaccessibility
  execution failed with exit code 1.


<end of output>
Test time =   5.06 sec
----------------------------------------------------------
Test Failed.
"tst_qaccessibility" end time: Dec 10 09:51 UTC
"tst_qaccessibility" time elapsed: 00:00:05
----------------------------------------------------------

# emerge --info =dev-qt/qtbase-6.8.1
Portage 3.0.66.1 (python 3.12.7-final-0, default/linux/amd64/23.0/desktop/plasma/systemd, gcc-14, glibc-2.40-r5, 6.6.62-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-6.6.62-gentoo-x86_64-AMD_Ryzen_9_7950X3D_16-Core_Processor-with-glibc2.40
KiB Mem:   130977160 total,   7462924 free
KiB Swap:  134217724 total, 134208252 free
Timestamp of repository gentoo: Tue, 10 Dec 2024 08:45:00 +0000
Head commit of repository gentoo: 5a743e422ff735844fa7de4052f85d083aa9518f
sh dash 0.5.12
ld GNU ld (Gentoo 2.43 p3) 2.43.1
distcc 3.4 x86_64-pc-linux-gnu [disabled]
ccache version 4.10.2 [disabled]
app-misc/pax-utils:        1.3.8::gentoo
app-shells/bash:           5.2_p37::gentoo
dev-build/autoconf:        2.72-r1::gentoo
dev-build/automake:        1.16.5-r2::gentoo
dev-build/cmake:           3.30.6::gentoo
dev-build/libtool:         2.4.7-r4::gentoo
dev-build/make:            4.4.1-r100::gentoo
dev-build/meson:           1.5.2::gentoo
dev-java/java-config:      2.3.4::gentoo
dev-lang/perl:             5.40.0::gentoo
dev-lang/python:           3.12.7_p1::gentoo, 3.13.1::gentoo
dev-lang/rust:             1.82.0-r101::gentoo
dev-util/ccache:           4.10.2-r1::gentoo
sys-apps/baselayout:       2.17::gentoo
sys-apps/sandbox:          2.40::gentoo
sys-apps/systemd:          256.7::gentoo
sys-devel/binutils:        2.43-r2::gentoo
sys-devel/binutils-config: 5.5.2::gentoo
sys-devel/clang:           18.1.8::gentoo, 19.1.4::gentoo
sys-devel/gcc:             14.2.1_p20241116::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/lld:             18.1.8::gentoo, 19.1.4::gentoo
sys-devel/llvm:            18.1.8-r1::gentoo, 19.1.4::gentoo
sys-kernel/linux-headers:  6.6-r1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.40-r5::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
    priority: -1000
    volatile: True
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-max-age: 24

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0
    volatile: True

Binary Repositories:

gentoobinhost
    priority: 1
    sync-uri: https://gentoo.osuosl.org/releases/amd64/binpackages/23.0/x86-64-v3

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
AR="/usr/bin/gcc-ar"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -mshstk -flto=16 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d"
CXXFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -mshstk -flto=16 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going y --with-bdeps y"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -mshstk -flto=16 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-elog split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -mshstk -flto=16 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing"
GENTOO_MIRRORS="https://gentoo.mirror.garr.it/ https://mirror.netcologne.de/gentoo/ https://mirrors.evoluso.com/gentoo/ https://gentoo.mirrors.ovh.net/gentoo-distfiles/"
LANG="it_IT.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--hash-style=gnu -Wl,--sort-common"
LEX="flex"
MAKEOPTS="-j32 -l32"
NM="/usr/bin/gcc-nm"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
RANLIB="/usr/bin/gcc-ranlib"
SHELL="/bin/bash"
USE="X a52 aac aalib acl acpi activities adns alsa amd64 ao audiofile avif bash-completion bluetooth branding brotli bzip2 cairo caps cdda cddb cdparanoia cdr cet colord crypt css cups curl dbus declarative dga djvu dri dts dvd dvdr encode exif expat fbcon ffmpeg fftw flac fontconfig foomaticdb fortran ftp gd gdbm geoip gif gimp gles2 gmp gnutls gphoto2 gpm graphviz gstreamer gtk gui handbook heif http2 iconv icu idn imagemagick imlib introspection ipv6 java javascript jbig jemalloc jpeg jpeg2k jpegxl kde kf6compat kwallet lame lapack lcms libass libnotify libsamplerate libtirpc llvm-libunwind lm-sensors lto lua lz4 lzma lzo mad magic man mhash mmap mng modules-sign mp3 mp4 mpeg multilib musicbrainz ncurses nls offensive ogg openal opencl opengl openmp opus pam pango pcre pdf pipewire plasma png policykit postscript ppds pulseaudio qml qt5 qt6 rdesktop readline recode samba screencast sctp sdl seccomp sndfile sockets sound speex spell sqlite ssl startup-notification svg symlink syslog systemd sysvipc taglib telemetry test test-rust theora threads tidy tiff truetype udev udisks unicode upower usb v4l vaapi vala verify-sig vim-syntax vnc vorbis vulkan wavpack wayland webp widgets win32codecs wmf wxwidgets x264 xattr xcb xft xinerama xml xpm xscreensaver xv xvid yahoo zip zlib zstd" ABI_X86="64" ADA_TARGET="gcc_12" ALSA_CARDS="hda-intel virmidi" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq" CURL_QUIC="ngtcp2" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" L10N="it en en-GB en-US" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LLVM_TARGETS="AMDGPU" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PERL_FEATURES="ithreads quadmath" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu radeon radeonsi zink" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

=================================================================
                        Package Settings
=================================================================

dev-qt/qtbase-6.8.1::gentoo was built with the following:
USE="X brotli concurrent cups dbus gtk gui icu journald libinput libproxy mysql network nls opengl sctp sql sqlite ssl udev vulkan wayland widgets xml (zstd) -accessibility -eglfs -evdev -gles2-only -gssapi -oci8 -odbc -postgres -renderdoc -syslog -test -tslib" ABI_X86="(64)"
CFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -Werror=odr -Werror=strict-aliasing"
CXXFLAGS="-O2 -pipe -frecord-gcc-switches -march=znver4 -Werror=odr -Werror=strict-aliasing"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-elog split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
LDFLAGS="-Wl,-O2 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"

# emerge -1pqv =dev-qt/qtbase-6.8.1
[ebuild   R   ] dev-qt/qtbase-6.8.1  USE="X brotli concurrent cups dbus gtk gui icu journald libinput libproxy mysql network nls opengl sctp sql sqlite ssl test* udev vulkan wayland widgets xml (zstd) -accessibility -eglfs -evdev -gles2-only -gssapi -oci8 -odbc -postgres -renderdoc -syslog -tslib"
Comment 1 Paolo Pedroni 2024-12-10 12:41:23 UTC
Created attachment 913727 [details]
LastTest.log.gz
Comment 2 Ionen Wolkens gentoo-dev 2024-12-10 13:46:20 UTC
Have you tried more than once? I suspect window-based tests may be flaky based on timing.

Afaik been passing for me (built w/ gcc and all USE enabled) unless it got QSKIP'ed and I didn't notice (can't try right now to check), pretty sure I tried w/ a clang build too albeit that was 6.8.9999 a while ago and may be worth retrying.
Comment 3 Paolo Pedroni 2024-12-10 13:50:59 UTC
(In reply to Ionen Wolkens from comment #2)
> Have you tried more than once? I suspect window-based tests may be flaky
> based on timing.

They used to be, but not this time, I'm afraid...

> Afaik been passing for me (built w/ gcc and all USE enabled) unless it got
> QSKIP'ed and I didn't notice (can't try right now to check), pretty sure I
> tried w/ a clang build too albeit that was 6.8.9999 a while ago and may be
> worth retrying.

I will try again, maybe with gcc, in the next days if I have time.
Comment 4 Ionen Wolkens gentoo-dev 2024-12-10 14:31:32 UTC
Looked a bit and there's good odds that the DE you're running is affecting it, e.g. that's for a different subtest of tst_qaccessibility but I see a recent commit (not in 6.8.1):

https://github.com/qt/qtbase/commit/de91f5da67adce38cd0dbf5bb804365c11125111

And the QWARN from the commit message are very similar to yours.

I always run tests in a chroot without a DE so it doesn't pickup these issues. If it does I figure I'll just skip it, this is too volatile.
Comment 5 Ionen Wolkens gentoo-dev 2024-12-10 14:36:41 UTC
(we do use QT_QPA_PLATFORM=offscreen rather than xcb/wayland, but I wouldn't be surprised if it's picking up these events from somewhere still)
Comment 6 Paolo Pedroni 2024-12-10 14:44:00 UTC
(In reply to Ionen Wolkens from comment #5)
> (we do use QT_QPA_PLATFORM=offscreen rather than xcb/wayland, but I wouldn't
> be surprised if it's picking up these events from somewhere still)

I was not running any DE at the times I emerged the package. First time I was logged in a tty, second time I was logged remotely via ssh. The only "graphical" thing running was the sddm login screen.
Comment 7 Paolo Pedroni 2024-12-10 15:08:07 UTC
Still failing, even with the patch in your comment and turning off sddm.
Comment 8 Ionen Wolkens gentoo-dev 2024-12-10 16:33:10 UTC
(In reply to Paolo Pedroni from comment #7)
> Still failing, even with the patch in your comment and turning off sddm.
Sorry, I didn't mean for you to try the patch. It was fixing a different test that just ran into a similar-looking issue, so it's not going to do anything.
Comment 9 Ionen Wolkens gentoo-dev 2024-12-10 16:35:18 UTC
(haven't retried it myself yet in case something changed since last time I tried which may or may not let me reproduce, probably do so tomorrow or so)
Comment 10 Ionen Wolkens gentoo-dev 2024-12-10 19:29:22 UTC
Actually had time to give it a try now, and it still passes fine if I build it with gcc, but fails if I build it with clang.

So, sounds like it is clang-related (not sure when this last worked exactly, I only sporadically test clang).

Haven't looked further yet.
Comment 11 Ionen Wolkens gentoo-dev 2024-12-10 19:56:44 UTC
I gave it another build using clang18, and it passes fine.

So seems this started happening with clang19 at some point.
Comment 12 Ionen Wolkens gentoo-dev 2024-12-11 06:17:58 UTC
...and tried clang-20.0.0_pre20241207, but it still fails, likewise if using the current Qt dev branch.

Also tried with CXXFLAGS=-O0, but it didn't help (so likely can't do a temporary workaround with *FLAGS).

Given it doesn't segfault for a backtrace, not much to go by without trying ubsan or such. Guess could also be a clang regression, haven't looked further.

...that aside, I'm not sure if is actually used at (normal) runtime because if I do QT_QPA_PLATFORM=xcb I instead get:

    SKIP   : tst_QAccessibility::initTestCase() This platform does not support accessibility

I assume this relies on atspi-bridge instead with USE=accessibility.
Comment 13 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-11 06:20:04 UTC
(In reply to Ionen Wolkens from comment #12)
> ...and tried clang-20.0.0_pre20241207, but it still fails, likewise if using
> the current Qt dev branch.
> 
> Also tried with CXXFLAGS=-O0, but it didn't help (so likely can't do a
> temporary workaround with *FLAGS).

-O0 not helping is suspicious and implies it's either a C++ FE issue or something else entirely (or the flag wasn't respected, or it's in a C component ofc assuming didn't try CFLAGS too).

> 
> Given it doesn't segfault for a backtrace, not much to go by without trying
> ubsan or such. Guess could also be a clang regression, haven't looked
> further.

Maybe try Valgrind quickly given it's cheaper than building with *san.
Comment 14 Ionen Wolkens gentoo-dev 2024-12-11 07:14:52 UTC
Did use CFLAGS=-O0 as well, albeit Qt has so little C that it was hardly worth a mention. Also don't see anything but -O0 used anywhere, albeit it does pass -march=haswell and such in places for its runtime-detection simd stuff.

I'll probably experiment more later, have other things to do for now.

Note that if anyone plays with this meanwhile and want to run the test directly, do it as:

QT_QPA_PLATFORM=offscreen QT_PLUGIN_PATH=/var/tmp/portage/dev-qt/qtbase-6.8.1/work/qtbase-everywhere-src-6.8.1_build/lib64/qt6/plugins ./tst_qaccessibility
Comment 15 Ionen Wolkens gentoo-dev 2024-12-11 08:17:07 UTC
(In reply to Sam James from comment #13)
> Maybe try Valgrind quickly given it's cheaper than building with *san.
Tried that quick still, it didn't say anything interesting but well... the test passes under valgrind.