Package: systemd Version: 241-7~deb10u7 Severity: important Tags: upstream Hi,
I have a Docker container where I compile FPGA images using the QuartusII toolchain, but this fails with realloc(): invalid pointer Aborted Investigating this, I got a backtrace from gdb: #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007f242ac38535 in __GI_abort () at abort.c:79 #2 0x00007f242ac8f508 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f242ad9a28d "%s\n") at ../sysdeps/posix/libc_fatal.c:181 #3 0x00007f242ac95c1a in malloc_printerr (str=str@entry=0x7f242ad98587 "realloc(): invalid pointer") at malloc.c:5341 #4 0x00007f242ac9ae4a in __GI___libc_realloc (oldmem=0x7f242583b378, bytes=9) at malloc.c:3166 #5 0x00007f24256afaf5 in strextend_with_separator (x=x@entry=0x7ffe16aeaba0, separator=0x0, separator=0x0) at ../src/basic/string-util.c:920 #6 0x00007f24256b3081 in chase_symlinks.constprop.36 (path=<optimized out>, ret=0x7ffe16aeac98, flags=0, original_root=0x0) at ../src/basic/fs-util.c:1009 #7 0x00007f24256b8c0c in device_set_syspath (device=0x19e5760, _syspath=_syspath@entry=0x7ffe16aead10 "/sys/bus/serio/devices/serio0", verify=verify@entry=true) at ../src/libsystemd/sd-device/sd-device.c:148 #8 0x00007f24256b930a in sd_device_new_from_syspath (ret=ret@entry=0x7ffe16aeadd0, syspath=syspath@entry=0x7ffe16aead10 "/sys/bus/serio/devices/serio0") at ../src/libsystemd/sd-device/sd-device.c:223 #9 0x00007f24256bf572 in enumerator_scan_dir_and_add_devices (enumerator=enumerator@entry=0x19e5690, basedir=basedir@entry=0x7f24256c77c8 "bus", subdir1=subdir1@entry=0x7f24257d014b "serio", subdir2=subdir2@entry=0x7f24256c77ef "devices") at ../src/libsystemd/sd-device/device-enumerator.c:471 #10 0x00007f24256bf945 in enumerator_scan_dir (enumerator=enumerator@entry=0x19e5690, basedir=basedir@entry=0x7f24256c77c8 "bus", subdir=<optimized out>, subsystem=0x0) at ../src/libsystemd/sd-device/device-enumerator.c:568 #11 0x00007f24256c221f in enumerator_scan_devices_all (enumerator=0x19e5690) at ../src/libsystemd/sd-device/device-enumerator.c:777 #12 device_enumerator_scan_devices (enumerator=0x19e5690) at ../src/libsystemd/sd-device/device-enumerator.c:844 #13 udev_enumerate_scan_devices (udev_enumerate=<optimized out>, udev_enumerate=<optimized out>) at ../src/libudev/libudev-enumerate.c:377 #14 0x00007f2430302f45 in ?? () from /opt/altera/20.1/quartus/linux64/libsys_cpt.so I've tried to build a minimal test case, which succeeds: #include <libudev.h> int main(int argc, char **argv) { struct udev *u = udev_new(); struct udev_enumerate *e = udev_enumerate_new(u); return udev_enumerate_scan_devices(e); } So, in order to get better debug information, I've tried to rebuild the systemd package with debug information. For convenience, I did this inside a container, and got several failing test cases. I then upgraded to the version in sid to see if the problem had been solved in the meantime, but building this package also failed: 324/598 udev-test SKIP 0.12s 351/598 test-engine FAIL 0.04s (killed by signal 6 SIGABRT) 351/598 test-engine FAIL 0.04s (killed by signal 6 SIGABRT) 357/598 test-boot-timestamps SKIP 0.04s 359/598 test-unit-name FAIL 0.05s (killed by signal 6 SIGABRT) 359/598 test-unit-name FAIL 0.05s (killed by signal 6 SIGABRT) 360/598 test-load-fragment FAIL 0.07s (killed by signal 6 SIGABRT) 360/598 test-load-fragment FAIL 0.07s (killed by signal 6 SIGABRT) 377/598 test-util FAIL 0.09s (killed by signal 6 SIGABRT) 377/598 test-util FAIL 0.09s (killed by signal 6 SIGABRT) 408/598 test-process-util FAIL 0.06s (killed by signal 6 SIGABRT) 408/598 test-process-util FAIL 0.06s (killed by signal 6 SIGABRT) 417/598 test-barrier SKIP 0.03s 419/598 test-namespace SKIP 0.03s 423/598 test-seccomp FAIL 0.04s (killed by signal 6 SIGABRT) 423/598 test-seccomp FAIL 0.04s (killed by signal 6 SIGABRT) 426/598 test-loop-block SKIP 0.04s 429/598 test-bpf-devices SKIP 0.02s 430/598 test-bpf-firewall SKIP 0.02s 431/598 test-watch-pid FAIL 0.03s (killed by signal 6 SIGABRT) 431/598 test-watch-pid FAIL 0.03s (killed by signal 6 SIGABRT) 462/598 test-cgroup-util FAIL 0.03s (killed by signal 6 SIGABRT) 462/598 test-cgroup-util FAIL 0.03s (killed by signal 6 SIGABRT) 470/598 test-path FAIL 0.02s (killed by signal 6 SIGABRT) 470/598 test-path FAIL 0.02s (killed by signal 6 SIGABRT) 471/598 test-execute FAIL 0.03s (killed by signal 6 SIGABRT) 471/598 test-execute FAIL 0.03s (killed by signal 6 SIGABRT) 475/598 test-sched-prio FAIL 0.03s (killed by signal 6 SIGABRT) 475/598 test-sched-prio FAIL 0.03s (killed by signal 6 SIGABRT) 489/598 test-sd-hwdb SKIP 0.02s 511/598 test-bus-marshal SKIP 0.03s 515/598 test-bus-chat SKIP 0.02s 516/598 test-bus-cleanup SKIP 0.02s 518/598 test-bus-track SKIP 0.02s 522/598 test-bus-gvariant SKIP 0.02s 523/598 test-bus-creds FAIL 0.02s (killed by signal 6 SIGABRT) 523/598 test-bus-creds FAIL 0.02s (killed by signal 6 SIGABRT) 524/598 test-bus-match SKIP 0.02s 529/598 test-login FAIL 0.02s (killed by signal 6 SIGABRT) 529/598 test-login FAIL 0.02s (killed by signal 6 SIGABRT) 533/598 test-sd-device-monitor FAIL 0.02s (killed by signal 6 SIGABRT) 533/598 test-sd-device-monitor FAIL 0.02s (killed by signal 6 SIGABRT) This suggests that this is a deeper-seated issue within the systemd codebase -- some assumption that doesn't hold inside a container. To reproduce, build the Debian systemd package inside a docker container, e.g. using FROM debian:buster RUN echo "deb-src http://deb.debian.org/debian/ buster main" >>/etc/apt/sources.list RUN apt-get update RUN apt-get -y install build-essential RUN apt-get -y build-dep systemd RUN apt-get -y source systemd RUN apt-get -y -b source systemd To test the version in sid (which outputs the test summary), replace "buster" by "sid" in the Dockerfile. Simon -- Package-specific info: -- System Information: Debian Release: 10.9 APT prefers stable APT policy: (990, 'stable'), (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-16-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages systemd depends on: ii adduser 3.118 ii libacl1 2.2.53-4 ii libapparmor1 2.13.2-10 ii libaudit1 1:2.8.4-3 ii libblkid1 2.33.1-0.1 ii libc6 2.31-11 ii libcap2 1:2.25-2 ii libcryptsetup12 2:2.1.0-5+deb10u2 ii libgcrypt20 1.8.4-5 ii libgnutls30 3.7.1-3 ii libgpg-error0 1.35-1 ii libidn11 1.33-2.2 ii libip4tc0 1.8.2-4 ii libkmod2 26-1 ii liblz4-1 1.8.3-1 ii liblzma5 5.2.4-1 ii libmount1 2.36.1-7 ii libpam0g 1.3.1-5 ii libseccomp2 2.5.1-1 ii libselinux1 3.1-3 ii libsystemd0 241-7~deb10u7 ii mount 2.33.1-0.1 ii util-linux 2.33.1-0.1 Versions of packages systemd recommends: ii dbus 1.12.20-0+deb10u1 ii libpam-systemd 241-7~deb10u7 Versions of packages systemd suggests: ii policykit-1 0.105-25 pn systemd-container <none> Versions of packages systemd is related to: pn dracut <none> ii initramfs-tools 0.133+deb10u1 ii udev 241-7~deb10u7 -- Configuration Files: /etc/systemd/logind.conf changed [not included] -- no debconf information