Merge pull request #11592 from evverx/ignore-memory-leaks-in-dbus

tests: ignore memory leaks in dbus-daemon and also crash PID1 if UBSan is unhappy
This commit is contained in:
Evgeny Vereshchagin 2019-01-30 16:24:18 +03:00 committed by GitHub
commit 3fb1ea3bb4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -344,8 +344,8 @@ create_asan_wrapper() {
set -x
DEFAULT_ASAN_OPTIONS=strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1
DEFAULT_UBSAN_OPTIONS=print_stacktrace=1:print_summary=1
DEFAULT_ENVIRONMENT="ASAN_OPTIONS=\$DEFAULT_ASAN_OPTIONS UBSAN_OPTIONS=\$DEFAULT_UBSAN_OPTIONS:halt_on_error=1"
DEFAULT_UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1
DEFAULT_ENVIRONMENT="ASAN_OPTIONS=\$DEFAULT_ASAN_OPTIONS UBSAN_OPTIONS=\$DEFAULT_UBSAN_OPTIONS"
mount -t proc proc /proc
mount -t sysfs sysfs /sys
@ -485,19 +485,27 @@ check_asan_reports() {
ret=$(($ret+1))
fi
journald_report=$(find "$root" -name "systemd-journald.asan.log*" -exec cat {} \;)
if [[ ! -z "$journald_report" ]]; then
journald_report=$(find "$root" -name "systemd-journald.asan.log*" -exec cat {} \;)
if [[ ! -z "$journald_report" ]]; then
printf "%s" "$journald_report"
ret=$(($ret+1))
fi
fi
pids=$("$BUILD_DIR/journalctl" -D "$root/var/log/journal" | perl -alne 'print $1 if /\[(\d+)\]:\s*SUMMARY:\s+\w+Sanitizer/')
if [[ ! -z "$pids" ]]; then
pids=$(
"$BUILD_DIR/journalctl" -D "$root/var/log/journal" | perl -alne '
BEGIN {
%services_to_ignore = (
"dbus-daemon" => undef,
);
}
print $2 if /\s(\S*)\[(\d+)\]:\s*SUMMARY:\s+\w+Sanitizer/ && !exists $services_to_ignore{$1}'
)
if [[ ! -z "$pids" ]]; then
ret=$(($ret+1))
for pid in $pids; do
"$BUILD_DIR/journalctl" -D "$root/var/log/journal" _PID=$pid --no-pager
done
fi
fi
fi
return $ret
@ -1582,7 +1590,7 @@ test_run() {
else
dwarn "can't run systemd-nspawn, skipping"
fi
fi
fi
fi
return 0
}