]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
tests-extra: dnssec/dnskey_sync -- avoid infinite loop
authorDavid Vašek <david.vasek@nic.cz>
Mon, 14 Jul 2025 16:37:37 +0000 (18:37 +0200)
committerDaniel Salzman <daniel.salzman@nic.cz>
Tue, 15 Jul 2025 09:21:15 +0000 (11:21 +0200)
tests-extra/tests/dnssec/dnskey_sync/test.py

index 5ac7af331465f305d472f0b51fe88977c37adb17..412d4d29a6574d1c34344335abc04537b9a8f36f 100644 (file)
@@ -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)