kada49@laptop ~ % sudo dnf check all
kada49@laptop ~ %
kada49@laptop ~ % sudo dnf repoquery --duplicates
Last metadata expiration check: 0:47:33 ago on Tue 02 Apr 2024 14:21:47 CEST.
kada49@laptop ~ %
kada49@laptop ~ % sudo dnf repoquery --unsatisfied
Last metadata expiration check: 0:48:14 ago on Tue 02 Apr 2024 14:21:47 CEST.
kada49@laptop ~ %
kada49@laptop ~ % sudo dnf repoquery --extras
Last metadata expiration check: 0:48:37 ago on Tue 02 Apr 2024 14:21:47 CEST.
kada49@laptop ~ %
kada49@laptop ~ % sudo rpm -V -a
.....UG.. g /var/run/avahi-daemon
.M....... g /boot/System.map-6.8.1-300.fc40.x86_64
.......T. /usr/bin/ld.bfd
.M....... c /etc/audit/rules.d/audit.rules
missing /run/gluster/metrics
.M....... /var/lib/gssproxy/clients
.M....... /var/lib/gssproxy/rcache
......G.. g /run/openvpn-client
......G.. g /run/openvpn-server
.M....... g /var/lib/selinux/targeted/active/modules/200/container
.M....... g /var/lib/colord/mapping.db
.M....... g /var/lib/colord/storage.db
.M....... g /run/libvirt/common
.....UG.. g /run/libvirt/qemu
.M...UG.. g /run/libvirt/qemu/dbus
.....UG.. g /run/libvirt/qemu/passt
.....UG.. g /run/libvirt/qemu/slirp
.M....... g /run/thermald/thermald.pid
.M....... c /boot/grub2/grub.cfg
.M....... c /boot/grub2/grub.cfg
.M....... c /boot/grub2/grub.cfg
.M....... /boot/efi/System
.M....... /boot/efi/System/Library
.M....... /boot/efi/System/Library/CoreServices
.M....... /boot/efi/System/Library/CoreServices/SystemVersion.plist
.M....... /boot/efi/mach_kernel
S.5....T. c /etc/sysconfig/livesys
.M....... g /var/lib/selinux/targeted/active/modules/400/extra_varrun
SM5....T. c /var/lib/unbound/root.key
1 kada49@laptop ~ %
I have two computers with the same issue (node illegal instruction), one fresh install workstation f40 beta, the other a server f40 beta, both with fresh updates. Bug reported for the former; I didn’t need nodejs on the server but did dnf install nodejs and replicated issue there this morning. Since npm is in the same package, I didn’t bother checking it for the same behavior, but I do see the SIGILL for npm on the workstation. So the workstation tag can have the server tag join it.
This needs to be escalated. I have two systems which are effectively unusable now, after updating. I did try downgrading glibc, but the problem still occurs. (F40 updated April 1, 2024. X86_64, Intel)
For some reason, grub-customizer does not throw an ‘Illegal instruction (core dumped)’ error, and runs successfully…
More info:
$ kwrite
Illegal instruction (core dumped)
gdb:
Program received signal SIGILL, Illegal instruction.
0x00007ffff630ea9c in aeshash128(unsigned char const*, unsigned long, unsigned long, unsigned long) () from /lib64/libQt6Core.so.6
Since multiple people are reporting illegal instruction errors in libQtCore, I opened a bug: 2272758 – Illegal instruction errors in libQt6Core. For those affected, please add yourself to the CC field of that bug.
Can anyone who is affected by this please post info on their CPU (e.g. /proc/cpuinfo)? It seems pretty important to know as best as possible what CPUs are affected by this. Our working theory is that it’s CPUs without AVX support, but it would be good to check. Thanks.
Sure, and thanks for the follow-up. I tried node --version on three systems, all running F40 and refreshed as of this morning. Two of three fail with illegal instruction, the other succeeds. The one that succeeds has the avx flag:
@mhdave thanks for the info. It actually turns out we are dealing with two separate bugs here (crazy coincidence, I know). The node one was not caused by the gcc miscompilation bug that’s affecting qt6, but by a bug in node itself. See https://bugzilla.redhat.com/show_bug.cgi?id=2273542 . So the node case does, I think, affect all systems without AVX.
It seems our current call (by Jakub, who ought to know) is that the gcc miscompilation case affects only systems which do have AES-NI (flag aes) but do not have AVX (flag avx), which is a tighter set still, and includes the known-affected CPUs so far (the Pentium Silver N5000 and the Core i5-650).
(gdb) s
simdutf::implementation::implementation () at …/…/deps/simdutf/simdutf.h:3296
3296 _required_instruction_sets(required_instruction_sets)
(gdb) s
3294 _name(name),
(gdb) s
std::__cxx11::basic_string<char, std::char_traits, std::allocator >::basic_string () at /usr/include/c++/14/bits/basic_string.h:556
556 _M_construct(__str._M_data(), __str._M_data() + __str.length(),
(gdb) s
simdutf::implementation::implementation () at …/…/deps/simdutf/simdutf.h:3296
3296 _required_instruction_sets(required_instruction_sets)
(gdb) s
Program received signal SIGILL, Illegal instruction.
simdutf::implementation::implementation () at …/…/deps/simdutf/simdutf.h:3296
3296 _required_instruction_sets(required_instruction_sets)
(gdb) s
Search on internet to simdutf leads to
About
Unicode routines (UTF8, UTF16, UTF32) and Base64: billions of characters per second using SSE2, AVX2, NEON, AVX-512, RISC-V Vector Extension. Part of Node.js and Bun.
As I said above, there are two bugs. The node bug is one thing. The qt bug is another thing. The node bug is already fixed in this update. The qt bug is waiting on a gcc rebuild.
We are discussing that here. At this point it is basically a judgment call whether fixing Plasma (mostly, plus the tracker-miners crash which is annoying but not fatal) for a small amount of unusual systems is worth delaying a week. To fix it we have to rebuild gcc, which takes 15-23 hours (that’s in progress now), then build qt6 (another hour), then do a new compose (about 9 hours), and the go/no-go meeting is in about 20 hours.