control: severity -1 normal control: tags -1 + moreinfo upstream
Am 25.05.21 um 15:29 schrieb Simon Richter:
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);
}
With "succeeds", I guess you failed to reproduce the issue or do you mean you succeeded in building a minimal test case which reproduces the issue?
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:
I'm not sure that the explicit asserts you see in the test suite inside docker are the same issue as the invalid pointer access you encountered above, so I probably wouldn't entangle them.
Please consider filing an upstream issue at https://github.com/systemd/systemdIt's likely that upstream has follow-up questions which you can answer better then me.
Regards, Michael
OpenPGP_signature
Description: OpenPGP digital signature

