diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index b650b34f98..93ad563500 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -81,10 +81,10 @@ valgrind_cmd = '' enable_debug = True env = {} wait_online_env = {} -asan_options = None -lsan_options = None -ubsan_options = None -with_coverage = False +asan_options = os.getenv('ASAN_OPTIONS') +lsan_options = os.getenv('LSAN_OPTIONS') +ubsan_options = os.getenv('UBSAN_OPTIONS') +with_coverage = os.getenv('COVERAGE_BUILD_DIR') != None show_journal = True # When true, show journal on stopping networkd. active_units = [] @@ -487,7 +487,19 @@ def create_service_dropin(service, command, additional_settings=None): if ubsan_options: drop_in += [f'Environment=UBSAN_OPTIONS="{ubsan_options}"'] if asan_options or lsan_options or ubsan_options: - drop_in += ['SystemCallFilter='] + # Disable system call filter when running with sanitizers, as they seem to call filtered syscall at + # the very end of the execution and stuck the process. See issue #39567. + drop_in += [ + 'LockPersonality=no', + 'ProtectClock=no', + 'ProtectKernelLogs=no', + 'RestrictAddressFamilies=', + 'RestrictNamespaces=no', + 'RestrictRealtime=no', + 'RestrictSUIDSGID=no', + 'SystemCallArchitectures=', + 'SystemCallFilter=', + ] if use_valgrind or asan_options or lsan_options or ubsan_options: drop_in += ['MemoryDenyWriteExecute=no'] if use_valgrind: