Bug#1111726: context: "mtxrun --generate" fails with "Illegal instruction"
Control: reassign -1 libmimalloc3
Control: merge -1 1106879
Next try.
22.08.2025 09:50:16 Hilmar Preuße <hille42@web.de>:
> Control: severity -1 important
> Control: reassign -1 *libmimalloc3*
> Control: merge -1 1106879
>
> This looks like a known issue for *libmimalloc3*. Reassigning, merging
>
> Hilmar
>
> 21.08.2025 15:51:23 Sanjoy Mahajan <sanjoy@mit.edu>:
>
>> Package: context
>> Version: 2025.03.05.20250324+dfsg-2
>> Severity: normal
>> File: /usr/bin/mtxrun
>>
>> When run as root, "mtxrun --generate" fails with "Illegal instruction".
>> Here is an strace. I tried changing vm.overcommit_memory (trying 1 and
>> 2 in addition to the default of 0) but no luck. Maybe this problem is
>> really in libmimalloc (libmimalloc3:amd64 3.0.3+ds-1.1)?
>>
>> execve("/usr/bin/mtxrun", ["mtxrun", "--generate"], 0x7ffdabc0a808 /* 20 vars */) = 0
>> brk(NULL) = 0x5621792bf000
>> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0c4350e000
>> access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
>> openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
>> fstat(3, {st_mode=S_IFREG|0644, st_size=145047, ...}) = 0
>> mmap(NULL, 145047, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0c434ea000
>> close(3) = 0
>> openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmimalloc.so.3", O_RDONLY|O_CLOEXEC) = 3
>> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
>> fstat(3, {st_mode=S_IFREG|0644, st_size=167920, ...}) = 0
>> mmap(NULL, 193296, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0c434ba000
>> mmap(0x7f0c434c0000, 86016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f0c434c0000
>> mmap(0x7f0c434d5000, 32768, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f0c434d5000
>> mmap(0x7f0c434dd000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f0c434dd000
>> mmap(0x7f0c434e4000, 21264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0c434e4000
>> close(3) = 0
>> openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
>> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
>> fstat(3, {st_mode=S_IFREG|0644, st_size=977112, ...}) = 0
>> mmap(NULL, 978968, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0c433ca000
>> mmap(0x7f0c433db000, 512000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f0c433db000
>> mmap(0x7f0c43458000, 393216, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8e000) = 0x7f0c43458000
>> mmap(0x7f0c434b8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xed000) = 0x7f0c434b8000
>> close(3) = 0
>> openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
>> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\236\2\0\0\0\0\0"..., 832) = 832
>> pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
>> fstat(3, {st_mode=S_IFREG|0755, st_size=2003408, ...}) = 0
>> pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
>> mmap(NULL, 2055800, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0c431d4000
>> mmap(0x7f0c431fc000, 1462272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f0c431fc000
>> mmap(0x7f0c43361000, 352256, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18d000) = 0x7f0c43361000
>> mmap(0x7f0c433b7000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e2000) = 0x7f0c433b7000
>> mmap(0x7f0c433bd000, 52856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0c433bd000
>> close(3) = 0
>> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0c431d2000
>> arch_prctl(ARCH_SET_FS, 0x7f0c431d2b80) = 0
>> set_tid_address(0x7f0c431d2e50) = 402759
>> set_robust_list(0x7f0c431d2e60, 24) = 0
>> rseq(0x7f0c431d2ac0, 0x20, 0, 0x53053053) = 0
>> mprotect(0x7f0c433b7000, 16384, PROT_READ) = 0
>> mprotect(0x7f0c434b8000, 4096, PROT_READ) = 0
>> mprotect(0x7f0c434dd000, 8192, PROT_READ) = 0
>> mprotect(0x5621558bb000, 45056, PROT_READ) = 0
>> mprotect(0x7f0c4354a000, 8192, PROT_READ) = 0
>> prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
>> munmap(0x7f0c434ea000, 145047) = 0
>> getrandom("\xdc\xc9\x39\xdd\x6e\x6d\x65\xf8\xdf\x46\xef\xef\x13\xf5\x8f\x21\x08\x4c\x1b\x57\x7e\x5a\x0f\xed\x3f\x35\x39\x74\x34\x04\xf6\x31", 32, GRND_NONBLOCK) = 32
>> sysinfo({uptime=13489650, loads=[1984, 3616, 8128], totalram=8257196032, freeram=700715008, sharedram=66269184, bufferram=90144768, totalswap=0, freeswap=0, procs=277, totalhigh=0, freehigh=0, mem_unit=1}) = 0
>> open("/proc/sys/vm/overcommit_memory", O_RDONLY) = 3
>> read(3, "0\n", 32) = 2
>> close(3) = 0
>> mmap(NULL, 2359296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f0c42f92000
>> prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7f0c42f92000, 2359296, "mimalloc") = -1 EINVAL (Invalid argument)
>> clock_gettime(CLOCK_MONOTONIC, {tv_sec=305472, tv_nsec=21684732}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {tv_sec=305472, tv_nsec=21765120}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {tv_sec=305472, tv_nsec=21844810}) = 0
>> mmap(NULL, 1073807360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x7f0c02f82000
>> prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, 0x7f0c02f82000, 1073807360, "mimalloc") = -1 EINVAL (Invalid argument)
>> munmap(0x7f0c02f82000, 57344) = 0
>> munmap(0x7f0c42f90000, 8192) = 0
>> --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x7f0c434c6988} ---
>> +++ killed by SIGILL +++
>>
>>
>> -- System Information:
>> Debian Release: forky/sid
>> APT prefers testing
>> APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
>> Architecture: amd64 (x86_64)
>>
>> Kernel: Linux 6.12.17-amd64 (SMP w/2 CPU threads; PREEMPT)
>> Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE not set
>> Shell: /bin/sh linked to /usr/bin/dash
>> Init: systemd (via /run/systemd/system)
>> LSM: AppArmor: enabled
>>
>> Versions of packages context depends on:
>> ii lmodern 2.005-1
>> ii luametatex 2.11.07+ds-2
>> ii ruby 1:3.3+b1
>> ih tex-common 6.19
>> ii tex-gyre 20180621-6
>> ii texlive-base 2025.20250727-2
>> ii texlive-binaries 2025.20250727.75242+ds-4
>> ii texlive-metapost 2025.20250727-2
>>
>> Versions of packages context recommends:
>> ii context-modules 20250324-2
>> ii fonts-freefont-otf 20211204+svn4273-2
>> ii fonts-gfs-artemisia 1.1-6
>> ii fonts-gfs-baskerville 1.1-6
>> ii fonts-gfs-bodoni-classic 1.1-6
>> ii fonts-gfs-didot 1.1-7
>> ii fonts-gfs-didot-classic 1.1-6
>> ii fonts-gfs-gazis 1.1-6
>> ii fonts-gfs-neohellenic 1.1-7
>> ii fonts-gfs-olga 1.1-6
>> ii fonts-gfs-porson 1.1-7
>> ii fonts-gfs-solomos 1.1-6
>> ii fonts-gfs-theokritos 1.1-6
>> ii fonts-sil-gentium 20081126:1.03-4
>>
>> Versions of packages context suggests:
>> pn context-nonfree <none>
>> pn fontforge <none>
>> ii libxml-parser-perl 2.47-1+b3
>> ii perl-tk 1:804.036+dfsg1-5
>>
>> -- no debconf information
Reply to: