]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Address race in dnssec system test. 'clear signing records' can fail
authorMark Andrews <marka@isc.org>
Tue, 19 May 2020 00:09:51 +0000 (10:09 +1000)
committerMark Andrews <marka@isc.org>
Tue, 19 May 2020 00:09:51 +0000 (10:09 +1000)
as the update triggers by the rndc command to clear the signing records
may not have completed by the time the subsequent rndc command to test
that the records have been removed is commenced.  Loop several times to
prevent false negative.

bin/tests/system/dnssec/tests.sh

index 894b268ddfa07f71d664c72643418f4e82127057..9d7597c8e2c34b31da56ec8282172f2e6814d36b 100644 (file)
@@ -2650,12 +2650,15 @@ status=$((status+ret))
 
 echo_i "clear signing records ($n)"
 { rndccmd 10.53.0.3 signing -clear all update-nsec3.example > /dev/null; } 2>&1 || ret=1
-sleep 1
-{ rndccmd 10.53.0.3 signing -list update-nsec3.example > signing.out; } 2>&1
-grep -q "No signing records found" signing.out || {
-        ret=1
-        sed 's/^/ns3 /' signing.out | cat_i
+check_no_signing_record_found() {
+  { rndccmd 10.53.0.3 signing -list update-nsec3.example > signing.out; } 2>&1
+  grep -q "No signing records found" signing.out || {
+    sed 's/^/ns3 /' signing.out | cat_i
+    return 1
+  }
+  return 0
 }
+retry_quiet 5 check_no_signing_record_found || ret=1
 n=$((n+1))
 test "$ret" -eq 0 || echo_i "failed"
 status=$((status+ret))