From 93f5ae6ba230e59a60180a2caf7561e8a3691216 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Aug 2022 03:48:51 +0900 Subject: [PATCH 1/2] test-network: also set StartLimitIntervalSec=0 for systemd-networkd.socket The socket unit is frequently restarted during the test. --- test/test-network/systemd-networkd-tests.py | 38 +++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index fddae84259..4a3fe4279d 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -346,6 +346,11 @@ def restore_active_units(): for u in active_units: call(f'systemctl restart {u}') +def create_unit_dropin(unit, contents): + mkdir_p(f'/run/systemd/system/{unit}.d') + with open(f'/run/systemd/system/{unit}.d/00-override.conf', mode='w', encoding='utf-8') as f: + f.write('\n'.join(contents)) + def create_service_dropin(service, command, reload_command=None, additional_settings=None): drop_in = [ '[Service]', @@ -382,9 +387,7 @@ def create_service_dropin(service, command, reload_command=None, additional_sett if additional_settings: drop_in += additional_settings - mkdir_p(f'/run/systemd/system/{service}.service.d') - with open(f'/run/systemd/system/{service}.service.d/00-override.conf', mode='w', encoding='utf-8') as f: - f.write('\n'.join(drop_in)) + create_unit_dropin(f'{service}.service', drop_in) def link_exists(link): return os.path.exists(os.path.join('/sys/class/net', link, 'ifindex')) @@ -669,17 +672,23 @@ def setUpModule(): # TODO: also run udevd with sanitizers, valgrind, or coverage #create_service_dropin('systemd-udevd', udevd_bin, # f'{udevadm_bin} control --reload --timeout 0') - drop_in = [ - '[Service]', - 'ExecStart=', - f'ExecStart=!!{udevd_bin}', - 'ExecReload=', - f'ExecReload={udevadm_bin} control --reload --timeout 0', - ] - - mkdir_p('/run/systemd/system/systemd-udevd.service.d') - with open('/run/systemd/system/systemd-udevd.service.d/00-override.conf', mode='w', encoding='utf-8') as f: - f.write('\n'.join(drop_in)) + create_unit_dropin( + 'systemd-udevd.service', + [ + '[Service]', + 'ExecStart=', + f'ExecStart=!!{udevd_bin}', + 'ExecReload=', + f'ExecReload={udevadm_bin} control --reload --timeout 0', + ] + ) + create_unit_dropin( + 'systemd-networkd.socket', + [ + '[Unit]', + 'StartLimitIntervalSec=0', + ] + ) check_output('systemctl daemon-reload') print(check_output('systemctl cat systemd-networkd.service')) @@ -699,6 +708,7 @@ def tearDownModule(): restore_timezone() rm_rf('/run/systemd/system/systemd-networkd.service.d') + rm_rf('/run/systemd/system/systemd-networkd.socket.d') rm_rf('/run/systemd/system/systemd-resolved.service.d') rm_rf('/run/systemd/system/systemd-timesyncd.service.d') rm_rf('/run/systemd/system/systemd-udevd.service.d') From 85b1a14d70c8da27853512d6f620afb029518b1a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 14 Aug 2022 03:56:01 +0900 Subject: [PATCH 2/2] test-network: use "systemctl restart" to restart networkd --- test/test-network/systemd-networkd-tests.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 4a3fe4279d..ca96f79428 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -601,8 +601,11 @@ def start_networkd(): check_output('systemctl start systemd-networkd') def restart_networkd(show_logs=True): - stop_networkd(show_logs) - start_networkd() + if show_logs: + invocation_id = check_output('systemctl show systemd-networkd.service -p InvocationID --value') + check_output('systemctl restart systemd-networkd.service') + if show_logs: + print(check_output('journalctl _SYSTEMD_INVOCATION_ID=' + invocation_id)) def networkctl_reconfigure(*links): check_output(*networkctl_cmd, 'reconfigure', *links, env=env)