Thanks, Aurelien! I was going to bring up an arm64 experimental environment to test this but you beat me to it.

How do we proceed from here? I am also the upstream maintainer, so I was planning to solve the issue there, cut a new release, then package this for Debian, closing the bug. I’ll go ahead with this (upstreaming Aurelien’s patch) if no one tells me otherwise. I’m also happy for Debian to carry this patch downstream until my next release makes it through the pipeline.

On 2/26/26 13:32, Aurelien Jarno wrote:
control: tag -1 + patch

Hi,

On 2026-02-24 16:03, Emanuele Rocca wrote:
Source: rumur
Version: 2025.08.31-1
Severity: important
Tags: ftbfs upstream
Justification: fails to build from source
User: [email protected]
Usertags: glibc-2.43

Hi,

rumur fails to build from source on arm64 when using glibc 2.43,
currently in experimental.

The issue is triggered by glibc 2.43 on arm64 enabling 2MB THP by
default:
https://sourceware.org/git/?p=glibc.git;a=commit;h=321e1fc73f53081d92ba357cdd48c56b79292020

Successful build with glibc 2.42, currently in sid:
https://people.debian.org/~ema/glibc-2.43-rebuilds/output-2/rumur_arm64.build

Logs of a failed build with glibc 2.43 are here:
https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/rumur_arm64.build

The following tests are failing:

   test_rumur[False-False-basic-sandbox.m-non-debug]
   test_rumur[False-False-basic-sandbox.m-debug]
   test_rumur[False-False-basic-sandbox.m-XML]
   test_rumur[False-True-basic-sandbox.m-non-debug]
   test_rumur[False-True-basic-sandbox.m-debug]
   test_rumur[False-True-basic-sandbox.m-XML]
   test_rumur[True-False-basic-sandbox.m-non-debug]
   test_rumur[True-False-basic-sandbox.m-debug]
   test_rumur[True-False-basic-sandbox.m-XML]
   test_rumur[True-True-basic-sandbox.m-non-debug]
   test_rumur[True-True-basic-sandbox.m-debug]
   test_rumur[True-True-basic-sandbox.m-XML]
   test_strace_sandbox

The cause for the above failures is that the seccomp sandbox stops the
attempted open of /sys/kernel/mm/transparent_hugepage/enabled:

   E       AssertionError: model failed: 
execve("/tmp/pytest-of-ema/pytest-15/test_strace_sandbox0/model.exe", 
["/tmp/pytest-of-ema/pytest-15/tes"...], 0xffffe78abf90 /* 96 vars */) = 0

   [...]

   E         openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/enabled", 
O_RDONLY) = -1 ENETDOWN (Network is down)
   E         --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, 
si_call_addr=0xe3ac16e98c60, si_syscall=__NR_openat, 
si_arch=AUDIT_ARCH_AARCH64} ---
   E         +++ killed by SIGSYS (core dumped) +++

One possible solution would be updating the seccomp filter to allow the
action above, but perhaps more discussion with glibc upstream is needed
to see if there are alternatives to opening a file under /sys, which can
cause problems in other scenarios too.

Please find below a patch implementing that. I tested it fixes the
issue.

--- rumur-2025.08.31.orig/rumur/resources/header.c
+++ rumur-2025.08.31/rumur/resources/header.c
@@ -266,6 +266,11 @@ static void sandbox(void) {
          BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_munmap, 0, 1),
          BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW),
  #endif
+#ifdef __NR_openat
+        /* malloc might use openat to check files in /sys/kernel/mm.  */
+        BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, __NR_openat, 0, 1),
+        BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW),
+#endif
/* If we're running multithreaded, enable syscalls used by pthreads. */
  #ifdef __NR_clone

Regards
Aurelien


Reply via email to