![Evgeny Vereshchagin](/assets/img/avatar_default.png)
The test is currently failing when run under ASan in a docker container: ``` --- command --- SYSTEMD_KBD_MODEL_MAP='/build/src/locale/kbd-model-map' PATH='/build/build:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' SYSTEMD_LANGUAGE_FALLBACK_MAP='/build/src/locale/language-fallback-map' /build/build/test-capability --- stderr --- have ambient caps: yes Capabilities:= cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read+eip Capabilities:= cap_dac_override,cap_net_raw+ep ==7021==LeakSanitizer has encountered a fatal error. ==7021==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1 ==7021==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc) Assertion 'WIFEXITED(status) && WEXITSTATUS(status) == 0' failed at ../src/test/test-capability.c:71, function fork_test(). Aborting. ------- ``` https://api.travis-ci.org/v3/job/452349948/log.txt
71 lines
2.6 KiB
Bash
Executable file
71 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Run this script from the root of the systemd's git repository
|
|
# or set REPO_ROOT to a correct path.
|
|
#
|
|
# Example execution on Fedora:
|
|
# dnf install docker
|
|
# systemctl start docker
|
|
# export CONT_NAME="my-fancy-container"
|
|
# travis-ci/managers/fedora.sh SETUP RUN CLEANUP
|
|
|
|
PHASES=(${@:-SETUP RUN RUN_ASAN CLEANUP})
|
|
FEDORA_RELEASE="${FEDORA_RELEASE:-rawhide}"
|
|
CONT_NAME="${CONT_NAME:-fedora-$FEDORA_RELEASE-$RANDOM}"
|
|
DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}"
|
|
DOCKER_RUN="${DOCKER_RUN:-docker run}"
|
|
REPO_ROOT="${REPO_ROOT:-$PWD}"
|
|
ADDITIONAL_DEPS=(dnf-plugins-core python2 iputils hostname libasan python3-pyparsing python3-evdev libubsan)
|
|
|
|
function info() {
|
|
echo -e "\033[33;1m$1\033[0m"
|
|
}
|
|
|
|
set -e
|
|
|
|
for phase in "${PHASES[@]}"; do
|
|
case $phase in
|
|
SETUP)
|
|
info "Setup phase"
|
|
info "Using Fedora $FEDORA_RELEASE"
|
|
# Pull a Docker image and start a new container
|
|
docker pull fedora:$FEDORA_RELEASE
|
|
info "Starting container $CONT_NAME"
|
|
$DOCKER_RUN -v $REPO_ROOT:/build:rw \
|
|
-w /build --privileged=true --name $CONT_NAME \
|
|
-dit --net=host fedora:$FEDORA_RELEASE /sbin/init
|
|
# Beautiful workaround for Fedora's version of Docker
|
|
sleep 1
|
|
$DOCKER_EXEC dnf makecache
|
|
# Install necessary build/test requirements
|
|
$DOCKER_EXEC dnf -y --exclude selinux-policy\* upgrade
|
|
$DOCKER_EXEC dnf -y install "${ADDITIONAL_DEPS[@]}"
|
|
$DOCKER_EXEC dnf -y builddep systemd
|
|
;;
|
|
RUN)
|
|
info "Run phase"
|
|
# Build systemd
|
|
$DOCKER_EXEC meson -Dslow-tests=true build
|
|
$DOCKER_EXEC ninja -v -C build
|
|
$DOCKER_EXEC ninja -C build test
|
|
;;
|
|
RUN_ASAN)
|
|
$DOCKER_EXEC git clean -dxff
|
|
$DOCKER_EXEC meson -Db_sanitize=address,undefined build
|
|
$DOCKER_EXEC ninja -v -C build
|
|
$DOCKER_EXEC sh -c "printf '#!/bin/sh\necho The test is failing under ASan, skipping; exit 77' >/build/build/test-capability"
|
|
|
|
# Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb.
|
|
$DOCKER_EXEC sh -c "UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 ninja -C build test"
|
|
;;
|
|
CLEANUP)
|
|
info "Cleanup phase"
|
|
docker stop $CONT_NAME
|
|
docker rm -f $CONT_NAME
|
|
;;
|
|
*)
|
|
echo >&2 "Unknown phase '$phase'"
|
|
exit 1
|
|
esac
|
|
done
|