Package: fakeroot Version: 1.34-1 Severity: critical Hello,
Assigning to fakeroot for now, but not sure it's not something for ftp.d.o (a binNMU) or libc6. Today, after an upgrade, I am not able to build packages with sbuild as it hanks with this process tree: (TZ is CEST) peb 8859 0.1 0.0 24048 17644 pts/4 Ss 14:15 0:09 | \_ zsh peb 224642 3.2 0.1 37664 32640 pts/4 S+ 16:24 0:00 | | \_ /usr/bin/perl /usr/bin/sbuild -As --source-only-changes peb 224665 0.0 0.0 2596 1536 pts/4 S+ 16:24 0:00 | | \_ /bin/sh /usr/bin/fakeroot debian/rules clean peb 224680 0.0 0.0 6196 2304 pts/4 S+ 16:24 0:00 | | \_ /usr/bin/make -f debian/rules clean In parallel, one can find a faked-sysv process eating all a CPU resources. peb 225847 100 0.0 2440 648 pts/4 R+ 16:25 0:02 \_ /usr/bin/faked-sysv When running make -f debian/rules clean directly, everything works well. Running it through fakeroot with strace gives: ❯ LC_ALL=C strace /bin/sh /usr/bin/fakeroot ~/git/cgg/projects/OaaSiS/packaging/libbnxtre/libbnxtre/debian/rules clean execve("/bin/sh", ["/bin/sh", "/usr/bin/fakeroot", "/home/peb/git/cgg/projects/OaaSi"..., "clean"], 0x7ffd1e5d6348 /* 66 vars */) = 0 brk(NULL) = 0x55d974431000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f07e4275000 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 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=103847, ...}, AT_EMPTY_PATH) = 0 mmap(NULL, 103847, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f07e425b000 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~\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"..., 784, 64) = 784 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1933688, ...}, AT_EMPTY_PATH) = 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"..., 784, 64) = 784 mmap(NULL, 1985936, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f07e4076000 mmap(0x7f07e409c000, 1404928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f07e409c000 mmap(0x7f07e41f3000, 348160, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17d000) = 0x7f07e41f3000 mmap(0x7f07e4248000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d1000) = 0x7f07e4248000 mmap(0x7f07e424e000, 52624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f07e424e000 close(3) = 0 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f07e4073000 arch_prctl(ARCH_SET_FS, 0x7f07e4073740) = 0 set_tid_address(0x7f07e4073a10) = 233801 set_robust_list(0x7f07e4073a20, 24) = 0 rseq(0x7f07e4074060, 0x20, 0, 0x53053053) = 0 mprotect(0x7f07e4248000, 16384, PROT_READ) = 0 mprotect(0x55d9731b3000, 8192, PROT_READ) = 0 mprotect(0x7f07e42a7000, 8192, PROT_READ) = 0 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0 munmap(0x7f07e425b000, 103847) = 0 getuid() = 1000 getgid() = 1000 getpid() = 233801 rt_sigaction(SIGCHLD, {sa_handler=0x55d9731a8550, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f07e40b3580}, NULL, 8) = 0 geteuid() = 1000 getrandom("\x87\x75\x90\x03\xa9\x28\xe2\x59", 8, GRND_NONBLOCK) = 8 brk(NULL) = 0x55d974431000 brk(0x55d974452000) = 0x55d974452000 getppid() = 233798 newfstatat(AT_FDCWD, "/home/peb/git/cgg/projects/OaaSiS/packaging/libbnxtre/libbnxtre", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0 openat(AT_FDCWD, "/usr/bin/fakeroot", O_RDONLY) = 3 fcntl(3, F_DUPFD, 10) = 10 close(3) = 0 fcntl(10, F_SETFD, FD_CLOEXEC) = 0 geteuid() = 1000 getegid() = 1000 rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x55d9731a8550, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f07e40b3580}, NULL, 8) = 0 rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f07e40b3580}, NULL, 8) = 0 rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f07e40b3580}, NULL, 8) = 0 read(10, "#!/bin/sh\n\n# This script first s"..., 8192) = 3995 pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233806 close(4) = 0 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233806, si_uid=1000, si_status=4, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 4}], 0, NULL) = 233806 wait4(-1, 0x7ffda7ce753c, WNOHANG, NULL) = -1 ECHILD (No child processes) pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233807 close(4) = 0 read(3, " -- '/home/peb/git/cgg/projects/"..., 128) = 91 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233807, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 233807 wait4(-1, 0x7ffda7ce74ec, WNOHANG, NULL) = -1 ECHILD (No child processes) pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233808 close(4) = 0 read(3, "/usr/lib/x86_64-linux-gnu/libfak"..., 128) = 84 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233808, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 233808 wait4(-1, 0x7ffda7ce757c, WNOHANG, NULL) = -1 ECHILD (No child processes) faccessat2(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libfakeroot/libfakeroot-sysv.so", R_OK, AT_EACCESS) = 0 faccessat2(AT_FDCWD, "/usr/lib64/libfakeroot/libfakeroot-sysv.so", R_OK, AT_EACCESS) = -1 ENOENT (No such file or directory) faccessat2(AT_FDCWD, "/usr/lib32/libfakeroot/libfakeroot-sysv.so", R_OK, AT_EACCESS) = -1 ENOENT (No such file or directory) pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233811 close(4) = 0 read(3, "156678863:233813\n", 128) = 17 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233811, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 233811 wait4(-1, 0x7ffda7ce753c, WNOHANG, NULL) = -1 ECHILD (No child processes) pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233814 close(4) = 0 read(3, "156678863\n", 128) = 10 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233814, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 233814 wait4(-1, 0x7ffda7ce753c, WNOHANG, NULL) = -1 ECHILD (No child processes) pipe2([3, 4], 0) = 0 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f07e4073a10) = 233817 close(4) = 0 read(3, "233813\n", 128) = 7 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=233817, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn({mask=[]}) = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 233817 wait4(-1, 0x7ffda7ce753c, WNOHANG, NULL) = -1 ECHILD (No child processes) rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], NULL, 8) = 0 vfork() = 233820 rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0 wait4(-1, stracing the corresponding faked-sysv gives: ❯ while true; do pid="$(ps aux|grep [f]aked-sysv|awk '{print $2}')" if [ ! -z "${pid}" ]; then echo "found ${pid}" LC_ALL=C.UTF-8 strace -p "${pid}" fi done found 230857 strace: Process 230857 attached close(200453) = -1 EBADF (Bad file descriptor) close(200454) = -1 EBADF (Bad file descriptor) close(200455) = -1 EBADF (Bad file descriptor) close(200456) = -1 EBADF (Bad file descriptor) close(200457) = -1 EBADF (Bad file descriptor) close(200458) = -1 EBADF (Bad file descriptor) close(200459) = -1 EBADF (Bad file descriptor) close(200460) = -1 EBADF (Bad file descriptor) close(200461) = -1 EBADF (Bad file descriptor) close(200462) = -1 EBADF (Bad file descriptor) close(200463) = -1 EBADF (Bad file descriptor) close(200464) = -1 EBADF (Bad file descriptor) close(200465) = -1 EBADF (Bad file descriptor) close(200466) = -1 EBADF (Bad file descriptor) close(200467) = -1 EBADF (Bad file descriptor) close(200468) = -1 EBADF (Bad file descriptor) close(200469) = -1 EBADF (Bad file descriptor) close(200470) = -1 EBADF (Bad file descriptor) close(200471) = -1 EBADF (Bad file descriptor) close(200472) = -1 EBADF (Bad file descriptor) close(200473) = -1 EBADF (Bad file descriptor) close(200474) = -1 EBADF (Bad file descriptor) close(200475) = -1 EBADF (Bad file descriptor) close(200476) = -1 EBADF (Bad file descriptor) close(200477) = -1 EBADF (Bad file descriptor) close(200478) = -1 EBADF (Bad file descriptor) close(200479) = -1 EBADF (Bad file descriptor) close(200480) = -1 EBADF (Bad file descriptor) close(200481) = -1 EBADF (Bad file descriptor) close(200482) = -1 EBADF (Bad file descriptor) close(200483) = -1 EBADF (Bad file descriptor) close(200484) = -1 EBADF (Bad file descriptor) close(200485) = -1 EBADF (Bad file descriptor) close(200486) = -1 EBADF (Bad file descriptor) close(200487) = -1 EBADF (Bad file descriptor) close(200488) = -1 EBADF (Bad file descriptor) close(200489) = -1 EBADF (Bad file descriptor) close(200490) = -1 EBADF (Bad file descriptor) close(200491) = -1 EBADF (Bad file descriptor) close(200492) = -1 EBADF (Bad file descriptor) close(200493) = -1 EBADF (Bad file descriptor) close(200494) = -1 EBADF (Bad file descriptor) close(200495) = -1 EBADF (Bad file descriptor) close(200496) = -1 EBADF (Bad file descriptor) close(200497) = -1 EBADF (Bad file descriptor) close(200498) = -1 EBADF (Bad file descriptor) close(200499) = -1 EBADF (Bad file descriptor) close(200500) = -1 EBADF (Bad file descriptor) close(200501) = -1 EBADF (Bad file descriptor) close(200502) = -1 EBADF (Bad file descriptor) close(200503) = -1 EBADF (Bad file descriptor) close(200504) = -1 EBADF (Bad file descriptor) close(200505) = -1 EBADF (Bad file descriptor) close(200506) = -1 EBADF (Bad file descriptor) close(200507) = -1 EBADF (Bad file descriptor) close(200508) = -1 EBADF (Bad file descriptor) close(200509) = -1 EBADF (Bad file descriptor) close(200510) = -1 EBADF (Bad file descriptor) close(200511) = -1 EBADF (Bad file descriptor) ... and so on I was not able to capture the strace from the beginning of faked-sysv, I guess I could try to hook something on the fakeroot's fork+exec mechanism in order to try grabbing it. From IRC discussions on #debian-devel: [2024-06-03 14:57:26] <dwfreed> the pattern of 1s in the binary representation of that number kind of suggests it's accidentally looking at a flags field [2024-06-03 14:57:46] <dwfreed> 00000111000100010000010100001001 [2024-06-03 14:58:04] <mjt> I think it can be anything [2024-06-03 14:59:07] <dwfreed> hex: 07110509 [2024-06-03 14:59:46] <Myon> ABI mismatch struct change somethiing [2024-06-03 15:07:23] <peb> I guess we'd just need to rebuild fakeroot against sid? [2024-06-03 15:09:08] <mjt> if it's an ABI mismatch, probably, but there's no reason for that [2024-06-03 15:09:16] <mjt> for the mismatch that is [2024-06-03 15:12:23] <dwfreed> a rebuild would be an easy way to test [2024-06-03 15:58:42] <peb> binNMU? [2024-06-03 15:59:45] <Sebastinas> If it is solved by a binNMU, something broke ABI. [2024-06-03 16:02:00] <peb> considering the libtree if it's an ABI breakage it's libc6 [2024-06-03 16:02:15] <peb> but libc6 only saw deb releases recently [2024-06-03 16:02:19] <peb> so... [2024-06-03 16:02:56] <Sebastinas> aurel32: ^ any idea if a glibc change can cause this? [2024-06-03 16:13:48] <schopin> It seems to be wrapping glibc functions that would be affected by the t64 transition. libtree -vvv: libfakeroot-0.so └── libc.so.6 [ld.so.conf] └── ld-linux-x86-64.so.2 [ld.so.conf] An hypothesis is that a rebuild against the current sid could solve the issue. I will try that and report back. Feel free to reassign. -- System Information: Debian Release: 12.5 APT prefers stable-security APT policy: (990, 'stable-security'), (990, 'stable'), (500, 'stable-updates') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-17-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to fr_FR.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 fakeroot depends on: ii libc6 2.36-9+deb12u7 ii libfakeroot 1.31-1.2 fakeroot recommends no packages. fakeroot suggests no packages. -- no debconf information