Received: from b-painless.mh.aa.net.uk (b-painless.mh.aa.net.uk [IPv6:2001:8b0:0:30::52]) by gbr-app-1.alpinelinux.org (Postfix) with ESMTPS id 30477225D44 for <~alpine/users@lists.alpinelinux.org>; Fri, 25 Jul 2025 11:10:53 +0000 (UTC) Received: from [2001:8b0:f70:546d:7218:35fc:b84f:52a4] (helo=baryte) by painless-b.tch.aa.net.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1ufGKD-00FAJR-0R for ~alpine/users@lists.alpinelinux.org; Fri, 25 Jul 2025 12:10:53 +0100 Date: Fri, 25 Jul 2025 12:09:57 +0100 From: Maximilian Friedersdorff To: ~alpine/users@lists.alpinelinux.org Subject: Re: Illegal instruction on running vaultwarden on RPI (aarch64) Message-ID: <20250725120957.6e0e293a@baryte> In-Reply-To: <20250725113320.6b69e6f9@bonsai.doitto.me.uk> References: <20250725094929.2abbb421@baryte> <20250725113320.6b69e6f9@bonsai.doitto.me.uk> X-Mailer: Claws Mail 4.3.1 (GTK 3.24.49; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Fri, 25 Jul 2025 11:33:20 +0100 Ian Smith wrote: > You _might_ get some more information from strace or ltrace. Trying this! Not gonna spam the whole output here but the last few lines: ``` openat(AT_FDCWD, "/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/local/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFREG|0755, st_size=133008, ...}) = 0 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960 mmap(NULL, 200704, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x7faf4e9000 mmap(0x7faf518000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1f000) = 0x7faf518000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fafc4d000 mprotect(0x7fafc52000, 4096, PROT_READ) = 0 mprotect(0x7fafb85000, 40960, PROT_READ) = 0 mprotect(0x7fafa38000, 462848, PROT_READ) = 0 mprotect(0x7faf63d000, 12288, PROT_READ) = 0 mprotect(0x7faf5f4000, 32768, PROT_READ) = 0 mprotect(0x7faf5a7000, 16384, PROT_READ) = 0 mprotect(0x7faf549000, 4096, PROT_READ) = 0 mprotect(0x7faf518000, 4096, PROT_READ) = 0 mprotect(0x55848e4000, 1753088, PROT_READ) = 0 set_tid_address(0x7fafc55e80) = 11689 getrandom("\x4d\xb3\xb9\xbf\x87\xe3\xec\x20\xc1\xac\x31\x55\xc5\xf9\x13\x68\x03\x5d\x6f\x1b\x05\x3c\x7c\xc5\x03\x5e\xc8\xba\x09\xd1\x35\xbd", 32, GRND_NONBLOCK) = 32 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPC, si_addr=0x7faf612968} --- +++ killed by SIGILL +++ Illegal instruction ``` I'm none the wiser to be honest! I did try gdb also: ``` gdb vaultwarden [noise] Reading symbols from vaultwarden... (No debugging symbols found in vaultwarden) (gdb) run Starting program: /usr/bin/vaultwarden Program received signal SIGILL, Illegal instruction. 0x0000007ff79bc968 in ?? () from /usr/lib/libmimalloc-secure.so.2 (gdb) bt #0 0x0000007ff79bc968 in ?? () from /usr/lib/libmimalloc-secure.so.2 #1 0x0000007ff79ba7f8 in ?? () from /usr/lib/libmimalloc-secure.so.2 #2 0x0000007ff7fa8368 in do_init_fini (queue=) at ldso/dynlink.c:1610 #3 0x0000007ff7fa9240 in __libc_start_init () at ldso/dynlink.c:1623 #4 0x0000007ff7f5d03c in libc_start_main_stage2 (main=0x5555c46fe8, argc=1, argv=0x7ffffffc08) at src/env/__libc_start_main.c:92 #5 0x0000000000000000 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) ``` Based on that it seems maybe a problem in mimalloc2? I tried re-installing that, maybe it had become corrupted or something, but no change in behaviour. `vaultwarden` is the only package on this system depending on mimalloc2, so a bug/problem in that library doesn't seem inherently insane. Max