mirror of
https://github.com/systemd/systemd
synced 2024-10-14 12:04:49 +00:00
test: don't preload libasan for systemd-remount-fs.service
The `mount` utility has an unexpected behavior when run with libasan, causing false-positives during the integration testing. For example, on Arch Linux with LD_PRELOAD pointing to libasan: ``` bash-5.0# mount -o remount,rw -v / mount: /dev/sda1 mounted on /. bash-5.0# echo $? 1 ``` However: ``` bash-5.0# LD_PRELOAD= mount -o remount,rw -v / mount: /dev/sda1 mounted on /. bash-5.0# echo $? 0 ``` Further investigation with strace shows a LeakSanitizer error: ``` bash-5.0# strace -s 512 mount -o remount,rw -v / ... write(2, "==355==LeakSanitizer has encountered a fatal error.\n", 52) = -1 EBADF (Bad file descriptor) write(2, "ReportFile::Write() can't output requested buffer!\n", 51) = -1 EBADF (Bad file descriptor) exit_group(1) = ? +++ exited with 1 +++ ``` Let's workaround this by clearing the LD_PRELOAD variable for systemd-remount-fs.service
This commit is contained in:
parent
da35a1c9fc
commit
aaef1ed21d
|
@ -386,6 +386,18 @@ printf "[Service]\nEnvironment=ASAN_OPTIONS=\$DEFAULT_ASAN_OPTIONS:log_path=/sys
|
|||
mkdir -p /etc/systemd/system/systemd-hwdb-update.service.d
|
||||
printf "[Unit]\nConditionVirtualization=container\n\n[Service]\nTimeoutSec=180s\n" >/etc/systemd/system/systemd-hwdb-update.service.d/env-override.conf
|
||||
|
||||
# The 'mount' utility doesn't behave well under libasan, causing unexpected
|
||||
# fails during boot and subsequent test results check:
|
||||
# bash-5.0# mount -o remount,rw -v /
|
||||
# mount: /dev/sda1 mounted on /.
|
||||
# bash-5.0# echo \$?
|
||||
# 1
|
||||
# Let's workaround this by clearing the previously set LD_PRELOAD env variable,
|
||||
# so the libasan library is not loaded for this particular service
|
||||
REMOUNTFS_CONF_DIR=/etc/systemd/system/systemd-remount-fs.service.d
|
||||
mkdir -p "\$REMOUNTFS_CONF_DIR"
|
||||
printf "[Service]\nUnsetEnvironment=LD_PRELOAD\n" >"\$REMOUNTFS_CONF_DIR/env.conf"
|
||||
|
||||
export ASAN_OPTIONS=\$DEFAULT_ASAN_OPTIONS:log_path=/systemd.asan.log UBSAN_OPTIONS=\$DEFAULT_UBSAN_OPTIONS
|
||||
exec $ROOTLIBDIR/systemd "\$@"
|
||||
EOF
|
||||
|
|
Loading…
Reference in a new issue