From ae932eefc5c8f049f29ecb14fe7a53cad5500056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Wed, 2 Jul 2025 17:53:18 +0200 Subject: [PATCH 1/9] Increase test reruns for fetchlimit The fetchlimit test has failed 8 times in the nightly CI over the past three weeks. That makes the overall failure rate somewhere around 1 %, which isn't a lot, but is still annoying when lots of testing is going on. --- bin/tests/system/fetchlimit/tests_sh_fetchlimit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py b/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py index 39dddf3062..2732296fc2 100644 --- a/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py +++ b/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py @@ -25,6 +25,6 @@ pytestmark = pytest.mark.extra_artifacts( import isctest.mark -@isctest.mark.flaky(max_runs=2) +@isctest.mark.flaky(max_runs=3) def test_fetchlimit(run_tests_sh): run_tests_sh() From 66f6f4bba99ca5975253c536bb46eae1188a28db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Wed, 2 Jul 2025 17:57:14 +0200 Subject: [PATCH 2/9] Allow reruns for test_json and test_xml tests These tests have been unstable under TSAN in the past, but it appears that the same failure mode can happen outside of TSAN tests as well. These tests have produced 12 failures combined in the past three weeks in nightlies. --- bin/tests/system/isctest/mark.py | 4 ---- bin/tests/system/statschannel/tests_json.py | 2 +- bin/tests/system/statschannel/tests_xml.py | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/bin/tests/system/isctest/mark.py b/bin/tests/system/isctest/mark.py index 1a2e36f5b8..b4617ced81 100644 --- a/bin/tests/system/isctest/mark.py +++ b/bin/tests/system/isctest/mark.py @@ -39,10 +39,6 @@ def feature_test(feature): return True -def with_tsan(*args): # pylint: disable=unused-argument - return feature_test("--tsan") - - def with_algorithm(name: str): key = f"{name}_SUPPORTED" assert key in os.environ, f"{key} env variable undefined" diff --git a/bin/tests/system/statschannel/tests_json.py b/bin/tests/system/statschannel/tests_json.py index ddd6d6210a..4b650b3145 100755 --- a/bin/tests/system/statschannel/tests_json.py +++ b/bin/tests/system/statschannel/tests_json.py @@ -119,6 +119,6 @@ def test_zone_with_many_keys_json(statsport): ) -@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.with_tsan) +@isctest.mark.flaky(max_runs=2) def test_traffic_json(statsport): generic.test_traffic(fetch_traffic_json, statsip="10.53.0.2", statsport=statsport) diff --git a/bin/tests/system/statschannel/tests_xml.py b/bin/tests/system/statschannel/tests_xml.py index 4271636101..22e03871a6 100755 --- a/bin/tests/system/statschannel/tests_xml.py +++ b/bin/tests/system/statschannel/tests_xml.py @@ -148,6 +148,6 @@ def test_zone_with_many_keys_xml(statsport): ) -@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.with_tsan) +@isctest.mark.flaky(max_runs=2) def test_traffic_xml(statsport): generic.test_traffic(fetch_traffic_xml, statsip="10.53.0.2", statsport=statsport) From 87ab198b73ce774cfb15541c32bee42e963c2c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Wed, 2 Jul 2025 18:00:16 +0200 Subject: [PATCH 3/9] Use proper wait in rndc test Previously, the one-second sleep was unreliable, as it didn't properly indicate that the rndc reconfig has been processed. The "test 'rndc reconfig' with a broken config" check would sometimes fail under TSAN in CI, because the previous rndc reconfig was still ongoing, and the subsequent rndc reconfig was ignored. --- bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py b/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py index 4bad00add4..7a5ed394e6 100644 --- a/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py +++ b/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py @@ -51,6 +51,6 @@ pytestmark = pytest.mark.extra_artifacts( ) -@isctest.mark.flaky(max_runs=3) # GL#4605 +@isctest.mark.flaky(max_runs=5) # GL#4605 def test_enginepkcs11(run_tests_sh): run_tests_sh() From 6755d741e418ebf813b6879134911570a00a082d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Thu, 3 Jul 2025 13:26:14 +0200 Subject: [PATCH 4/9] Remove token deletion check in keyfromlabel test This removes a leftover check which should've been removed in a prior change (see #5244). The softhsm2 failures when attempting to delete the token should be ignored. --- bin/tests/system/keyfromlabel/tests_keyfromlabel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/tests/system/keyfromlabel/tests_keyfromlabel.py b/bin/tests/system/keyfromlabel/tests_keyfromlabel.py index ae9305df3e..67b2893152 100644 --- a/bin/tests/system/keyfromlabel/tests_keyfromlabel.py +++ b/bin/tests/system/keyfromlabel/tests_keyfromlabel.py @@ -86,7 +86,6 @@ def token_init_and_cleanup(): raise_on_exception=False, ).stdout.decode("utf-8") assert re.search("Found token (.*) with matching token label", output) - assert re.search("The token (.*) has been deleted", output) # pylint: disable-msg=too-many-locals From 1e0df480c75f474f58e556f49c89b48ee38f4a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Thu, 3 Jul 2025 14:02:57 +0200 Subject: [PATCH 5/9] Mark the serve_stale system test as flaky The serve_stale test has some inherent instabilities affecting many different checks. While the failure rate isn't too high (about four failures in past three weeks of nightlies), it gets ignored, because the test has been unstable for a very long time. --- bin/tests/system/serve-stale/tests_sh_serve_stale.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/tests/system/serve-stale/tests_sh_serve_stale.py b/bin/tests/system/serve-stale/tests_sh_serve_stale.py index 1c3177c4a4..ac3ab100cc 100644 --- a/bin/tests/system/serve-stale/tests_sh_serve_stale.py +++ b/bin/tests/system/serve-stale/tests_sh_serve_stale.py @@ -11,6 +11,8 @@ import pytest +import isctest.mark + pytestmark = pytest.mark.extra_artifacts( [ "dig.out.*", @@ -26,5 +28,6 @@ pytestmark = pytest.mark.extra_artifacts( ) +@isctest.mark.flaky(max_runs=2) def test_serve_stale(run_tests_sh): run_tests_sh() From 34867e16936f79905b7189bd7d51248527e57ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Thu, 3 Jul 2025 14:40:06 +0200 Subject: [PATCH 6/9] Allow dnstap system test rerun on freebsd13 The check "unix socket message counts" sometimes fails with "dnstap output file smaller than expected". This only happens on freebsd13 and can't be reproduced easily. There was an attempt to decrease the required file size in the past, but apparently, the issue can still occur. --- bin/tests/system/dnstap/tests_sh_dnstap.py | 1 + bin/tests/system/isctest/mark.py | 5 +++++ bin/tests/system/timeouts/tests_tcp_timeouts.py | 7 +------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/bin/tests/system/dnstap/tests_sh_dnstap.py b/bin/tests/system/dnstap/tests_sh_dnstap.py index 10d9a4111b..e487ca2d08 100644 --- a/bin/tests/system/dnstap/tests_sh_dnstap.py +++ b/bin/tests/system/dnstap/tests_sh_dnstap.py @@ -31,5 +31,6 @@ pytestmark = [ ] +@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) def test_dnstap(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/isctest/mark.py b/bin/tests/system/isctest/mark.py index b4617ced81..199cc92e42 100644 --- a/bin/tests/system/isctest/mark.py +++ b/bin/tests/system/isctest/mark.py @@ -12,6 +12,7 @@ # information regarding copyright ownership. import os +import platform import shutil import subprocess @@ -39,6 +40,10 @@ def feature_test(feature): return True +def is_host_freebsd_13(*_): + return platform.system() == "FreeBSD" and platform.release().startswith("13") + + def with_algorithm(name: str): key = f"{name}_SUPPORTED" assert key in os.environ, f"{key} env variable undefined" diff --git a/bin/tests/system/timeouts/tests_tcp_timeouts.py b/bin/tests/system/timeouts/tests_tcp_timeouts.py index 1750715ce0..1fe1088a69 100644 --- a/bin/tests/system/timeouts/tests_tcp_timeouts.py +++ b/bin/tests/system/timeouts/tests_tcp_timeouts.py @@ -13,7 +13,6 @@ # pylint: disable=unused-variable -import platform import socket import time @@ -68,11 +67,7 @@ def test_initial_timeout(named_port): raise EOFError from e -def is_host_freebsd_13(*_): - return platform.system() == "FreeBSD" and platform.release().startswith("13") - - -@isctest.mark.flaky(max_runs=2, rerun_filter=is_host_freebsd_13) +@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) def test_idle_timeout(named_port): # # The idle timeout is 5 seconds, so the third message should fail From 126a59cef2b3407579ff99c260e25a49d67192b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Thu, 3 Jul 2025 14:50:25 +0200 Subject: [PATCH 7/9] Mark secondary.kasp test case as flaky on freebsd13 The test_kasp_case[secondary.kasp] can sometimes fail on freebsd13. It appears the test gets stuck on some operation which should be very quick, but for some reason takes at least a few seconds, causing the cb_ixfr_is_signed() function to time out. In one of the cases I investigated, it wasn't a query/response that caused a timeout, but rather some operation in between. The test attempts to read from a keyfile/statefile, but I see no reason why that should block. In any case, try to increase the timeout for the verification, as that shouldn't hurt. Also allow the test to be re-run on freebsd13, as it's likely to be caused by some odd behaviour on that platform -- the issue doesn't appear anywhere else. --- bin/tests/system/kasp/tests_kasp.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/tests/system/kasp/tests_kasp.py b/bin/tests/system/kasp/tests_kasp.py index 9ffd70b87c..039b302801 100644 --- a/bin/tests/system/kasp/tests_kasp.py +++ b/bin/tests/system/kasp/tests_kasp.py @@ -203,7 +203,7 @@ def cb_ixfr_is_signed(expected_updates, params, ksks=None, zsks=None): ) for update in expected_updates: - isctest.run.retry_with_timeout(update_is_signed, timeout=5) + isctest.run.retry_with_timeout(update_is_signed, timeout=10) def cb_rrsig_refresh(params, ksks=None, zsks=None): @@ -586,6 +586,9 @@ def cb_remove_keyfiles(params, ksks=None, zsks=None): ], }, id="secondary.kasp", + marks=pytest.mark.flaky( + max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13 + ), ), pytest.param( { From 4c487c811db579e50cbd6bfdb20379eec793cb8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Thu, 3 Jul 2025 15:22:23 +0200 Subject: [PATCH 8/9] Use pytest.mark.flaky as the flaky marker It's possible to use pytest.mark.flaky, which achieves the exact same thing as our custom-defined isctest.mark.flaky -- attempts to rerun the test on failure, but only is flaky package is available. --- bin/tests/system/autosign/tests_sh_autosign.py | 4 +--- bin/tests/system/dnstap/tests_sh_dnstap.py | 2 +- .../enginepkcs11/tests_sh_enginepkcs11.py | 4 +--- .../system/fetchlimit/tests_sh_fetchlimit.py | 4 +--- bin/tests/system/isctest/mark.py | 17 ----------------- bin/tests/system/mkeys/tests_sh_mkeys.py | 4 +--- bin/tests/system/nsupdate/tests_sh_nsupdate.py | 4 +--- bin/tests/system/qmin/tests_sh_qmin.py | 4 +--- bin/tests/system/reclimit/tests_sh_reclimit.py | 4 +--- bin/tests/system/rrl/tests_sh_rrl.py | 4 +--- .../system/serve-stale/tests_sh_serve_stale.py | 4 +--- bin/tests/system/statschannel/tests_json.py | 2 +- bin/tests/system/statschannel/tests_xml.py | 2 +- bin/tests/system/timeouts/tests_tcp_timeouts.py | 4 ++-- 14 files changed, 14 insertions(+), 49 deletions(-) diff --git a/bin/tests/system/autosign/tests_sh_autosign.py b/bin/tests/system/autosign/tests_sh_autosign.py index b373e03b6a..ef11cbe21a 100644 --- a/bin/tests/system/autosign/tests_sh_autosign.py +++ b/bin/tests/system/autosign/tests_sh_autosign.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "active.key", @@ -151,6 +149,6 @@ pytestmark = pytest.mark.extra_artifacts( ) -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_autosign(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/dnstap/tests_sh_dnstap.py b/bin/tests/system/dnstap/tests_sh_dnstap.py index e487ca2d08..8fef97a47e 100644 --- a/bin/tests/system/dnstap/tests_sh_dnstap.py +++ b/bin/tests/system/dnstap/tests_sh_dnstap.py @@ -31,6 +31,6 @@ pytestmark = [ ] -@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) +@pytest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) def test_dnstap(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py b/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py index 7a5ed394e6..089ac7ea60 100644 --- a/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py +++ b/bin/tests/system/enginepkcs11/tests_sh_enginepkcs11.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "dig.out.*", @@ -51,6 +49,6 @@ pytestmark = pytest.mark.extra_artifacts( ) -@isctest.mark.flaky(max_runs=5) # GL#4605 +@pytest.mark.flaky(max_runs=5) # GL#4605 def test_enginepkcs11(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py b/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py index 2732296fc2..23076980b5 100644 --- a/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py +++ b/bin/tests/system/fetchlimit/tests_sh_fetchlimit.py @@ -22,9 +22,7 @@ pytestmark = pytest.mark.extra_artifacts( ] ) -import isctest.mark - -@isctest.mark.flaky(max_runs=3) +@pytest.mark.flaky(max_runs=3) def test_fetchlimit(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/isctest/mark.py b/bin/tests/system/isctest/mark.py index 199cc92e42..7fdb964dc6 100644 --- a/bin/tests/system/isctest/mark.py +++ b/bin/tests/system/isctest/mark.py @@ -80,20 +80,3 @@ softhsm2_environment = pytest.mark.skipif( ), reason="SOFTHSM2_CONF and SOFTHSM2_MODULE environmental variables must be set and pkcs11-tool and softhsm2-util tools present", ) - -try: - import flaky as flaky_pkg # type: ignore -except ModuleNotFoundError: - # In case the flaky package is not installed, run the tests as usual - # without any attempts to re-run them. - # pylint: disable=unused-argument - def flaky(*args, **kwargs): - """Mock decorator that doesn't do anything special, just returns the function.""" - - def wrapper(wrapped_obj): - return wrapped_obj - - return wrapper - -else: - flaky = flaky_pkg.flaky diff --git a/bin/tests/system/mkeys/tests_sh_mkeys.py b/bin/tests/system/mkeys/tests_sh_mkeys.py index a98c98ffaf..3bf2549500 100644 --- a/bin/tests/system/mkeys/tests_sh_mkeys.py +++ b/bin/tests/system/mkeys/tests_sh_mkeys.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = [ pytest.mark.algorithm_set("ecc_default"), pytest.mark.extra_artifacts( @@ -52,6 +50,6 @@ pytestmark = [ ] -@isctest.mark.flaky(max_runs=2) # GL#3098 +@pytest.mark.flaky(max_runs=2) # GL#3098 def test_mkeys(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/nsupdate/tests_sh_nsupdate.py b/bin/tests/system/nsupdate/tests_sh_nsupdate.py index 735b6a78e3..2159a6a7dc 100644 --- a/bin/tests/system/nsupdate/tests_sh_nsupdate.py +++ b/bin/tests/system/nsupdate/tests_sh_nsupdate.py @@ -13,8 +13,6 @@ import platform import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "Kxxx*", @@ -82,6 +80,6 @@ pytestmark = pytest.mark.extra_artifacts( MAX_RUNS = 2 if platform.system() == "FreeBSD" else 1 # GL#3846 -@isctest.mark.flaky(max_runs=MAX_RUNS) +@pytest.mark.flaky(max_runs=MAX_RUNS) def test_nsupdate(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/qmin/tests_sh_qmin.py b/bin/tests/system/qmin/tests_sh_qmin.py index 2d9f90b4db..1116f7ec6c 100644 --- a/bin/tests/system/qmin/tests_sh_qmin.py +++ b/bin/tests/system/qmin/tests_sh_qmin.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "dig.out.*", @@ -25,6 +23,6 @@ pytestmark = pytest.mark.extra_artifacts( # The qmin test is inherently unstable, see GL #904 for details. -@isctest.mark.flaky(max_runs=3) +@pytest.mark.flaky(max_runs=3) def test_qmin(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/reclimit/tests_sh_reclimit.py b/bin/tests/system/reclimit/tests_sh_reclimit.py index 6a0ab31556..d22d10a523 100644 --- a/bin/tests/system/reclimit/tests_sh_reclimit.py +++ b/bin/tests/system/reclimit/tests_sh_reclimit.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "dig.out.*", @@ -27,6 +25,6 @@ pytestmark = pytest.mark.extra_artifacts( # The reclimit is known to be quite unstable. GL #1587 -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_reclimit(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/rrl/tests_sh_rrl.py b/bin/tests/system/rrl/tests_sh_rrl.py index 99be723c93..12ce0ca29f 100644 --- a/bin/tests/system/rrl/tests_sh_rrl.py +++ b/bin/tests/system/rrl/tests_sh_rrl.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "*mdig.out*", @@ -24,6 +22,6 @@ pytestmark = pytest.mark.extra_artifacts( # The rrl is known to be quite unstable. GL #172 -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_rrl(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/serve-stale/tests_sh_serve_stale.py b/bin/tests/system/serve-stale/tests_sh_serve_stale.py index ac3ab100cc..1f96485cd2 100644 --- a/bin/tests/system/serve-stale/tests_sh_serve_stale.py +++ b/bin/tests/system/serve-stale/tests_sh_serve_stale.py @@ -11,8 +11,6 @@ import pytest -import isctest.mark - pytestmark = pytest.mark.extra_artifacts( [ "dig.out.*", @@ -28,6 +26,6 @@ pytestmark = pytest.mark.extra_artifacts( ) -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_serve_stale(run_tests_sh): run_tests_sh() diff --git a/bin/tests/system/statschannel/tests_json.py b/bin/tests/system/statschannel/tests_json.py index 4b650b3145..21f2402243 100755 --- a/bin/tests/system/statschannel/tests_json.py +++ b/bin/tests/system/statschannel/tests_json.py @@ -119,6 +119,6 @@ def test_zone_with_many_keys_json(statsport): ) -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_traffic_json(statsport): generic.test_traffic(fetch_traffic_json, statsip="10.53.0.2", statsport=statsport) diff --git a/bin/tests/system/statschannel/tests_xml.py b/bin/tests/system/statschannel/tests_xml.py index 22e03871a6..796eea9d24 100755 --- a/bin/tests/system/statschannel/tests_xml.py +++ b/bin/tests/system/statschannel/tests_xml.py @@ -148,6 +148,6 @@ def test_zone_with_many_keys_xml(statsport): ) -@isctest.mark.flaky(max_runs=2) +@pytest.mark.flaky(max_runs=2) def test_traffic_xml(statsport): generic.test_traffic(fetch_traffic_xml, statsip="10.53.0.2", statsport=statsport) diff --git a/bin/tests/system/timeouts/tests_tcp_timeouts.py b/bin/tests/system/timeouts/tests_tcp_timeouts.py index 1fe1088a69..cb8defa71e 100644 --- a/bin/tests/system/timeouts/tests_tcp_timeouts.py +++ b/bin/tests/system/timeouts/tests_tcp_timeouts.py @@ -67,7 +67,7 @@ def test_initial_timeout(named_port): raise EOFError from e -@isctest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) +@pytest.mark.flaky(max_runs=2, rerun_filter=isctest.mark.is_host_freebsd_13) def test_idle_timeout(named_port): # # The idle timeout is 5 seconds, so the third message should fail @@ -189,7 +189,7 @@ def test_long_axfr(named_port): assert soa is not None -@isctest.mark.flaky(max_runs=3) +@pytest.mark.flaky(max_runs=3) def test_send_timeout(named_port): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.connect(("10.53.0.1", named_port)) From b98660e93e3925a0cb2ef57b0481ef4640ce4dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicki=20K=C5=99=C3=AD=C5=BEek?= Date: Fri, 4 Jul 2025 15:41:04 +0200 Subject: [PATCH 9/9] Remove unstable check from digdelv test The code which checks for both IPv4 and IPv6 mixed usage is inherently unstable, since the address family is chosen randomly for each connection. Closes #5406 --- bin/tests/system/digdelv/tests.sh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/bin/tests/system/digdelv/tests.sh b/bin/tests/system/digdelv/tests.sh index 99cd26b640..c8d060161b 100644 --- a/bin/tests/system/digdelv/tests.sh +++ b/bin/tests/system/digdelv/tests.sh @@ -1828,15 +1828,6 @@ if [ -x "$DELV" ]; then status=$((status + ret)) if testsock6 fd92:7065:b8e:ffff::2 2>/dev/null; then - n=$((n + 1)) - echo_i "checking delv +ns uses both address families ($n)" - ret=0 - delv_with_opts -a ns1/anchor.dnskey +root +ns +hint=root.hint a a.example >delv.out.test$n || ret=1 - grep -q 'sending packet from [0-9.]*#[0-9]* to' delv.out.test$n >/dev/null || ret=1 - grep -q 'sending packet from [0-9a-f:]*#[0-9]* to' delv.out.test$n >/dev/null || ret=1 - if [ $ret -ne 0 ]; then echo_i "failed"; fi - status=$((status + ret)) - n=$((n + 1)) echo_i "checking delv -4 +ns uses only IPv4 ($n)" ret=0