From: David VaĊĦek Date: Mon, 14 Jul 2025 16:37:37 +0000 (+0200) Subject: tests-extra: dnssec/dnskey_sync -- avoid infinite loop X-Git-Tag: v3.5.0~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=749d3cde96bea8a49b2e181ce403fcce19848d50;p=thirdparty%2Fknot-dns.git tests-extra: dnssec/dnskey_sync -- avoid infinite loop --- diff --git a/tests-extra/tests/dnssec/dnskey_sync/test.py b/tests-extra/tests/dnssec/dnskey_sync/test.py index 5ac7af3314..412d4d29a6 100644 --- a/tests-extra/tests/dnssec/dnskey_sync/test.py +++ b/tests-extra/tests/dnssec/dnskey_sync/test.py @@ -40,10 +40,16 @@ def detect_ddns_deadlock(server): return True return False -def check_same_dnskey(server1, server2, server3, tst): - while detect_ddns_deadlock(server1) or detect_ddns_deadlock(server2) or \ - (SIGNERS3 and detect_ddns_deadlock(server3)): - tst.sleep(6) +def check_same_dnskey(server1, server2, server3, tst, tries=20): + for i in range(tries): + if not detect_ddns_deadlock(server1) and \ + not detect_ddns_deadlock(server2) and \ + not (SIGNERS3 and detect_ddns_deadlock(server3)): + break + if i < tries - 1: + tst.sleep(6) + else: + set_err("DNSKEY sync has not converged yet") dnskey1 = server1.dig(zone[0].name, "DNSKEY", udp=False) dnskey2 = server2.dig(zone[0].name, "DNSKEY", udp=False)