From: Evan Hunt Date: Wed, 21 Feb 2018 06:09:54 +0000 (+1100) Subject: wait for synchronization; re-notify slave if the transfer doesn't happen X-Git-Tag: v9.9.13rc1~72^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=8c6e4b205ce5ca1c311f37ebbd2ca0a0ea4d368b;p=thirdparty%2Fbind9.git wait for synchronization; re-notify slave if the transfer doesn't happen (cherry picked from commit 67a8b5ec17b7f252cc96ba11935beb898dd211d6) --- diff --git a/CHANGES b/CHANGES index 659be45ad9f..de3a170edd0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4902. [test] Improved the reliability of the 'ixfr' system + test. [GL #66] + 4899. [test] Convert most of the remaining system tests to be able to run in parallel, continuing the work from change #4895. To take advantage of this, use "make -jN check", diff --git a/bin/tests/system/ixfr/tests.sh b/bin/tests/system/ixfr/tests.sh index cd9ba1ba29c..dce4c59170b 100644 --- a/bin/tests/system/ixfr/tests.sh +++ b/bin/tests/system/ixfr/tests.sh @@ -152,13 +152,36 @@ fi #echo_i "digging against slave: " #$DIG $DIGOPTS @10.53.0.4 a host1.test. +# wait for slave to be stable +for i in 0 1 2 3 4 5 6 7 8 9 +do + $DIG $DIGOPTS +tcp @10.53.0.4 SOA test > dig.out + grep -i "hostmaster\.test\..1" dig.out > /dev/null && break + sleep 1 +done + +# modify the master cp ns3/mytest1.db ns3/mytest.db $RNDCCMD 10.53.0.3 reload +#wait for master to reload load for i in 0 1 2 3 4 5 6 7 8 9 +do + $DIG $DIGOPTS +tcp @10.53.0.3 SOA test > dig.out + grep -i "hostmaster\.test\..2" dig.out > /dev/null && break + sleep 1 +done + +#wait for slave to transfer zone +for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 do $DIG $DIGOPTS +tcp @10.53.0.4 SOA test > dig.out grep -i "hostmaster\.test\..2" dig.out > /dev/null && break + + # re-notify if we've been waiting a long time + if [ $i -ge 5 ]; then + $RNDCCMD 10.53.0.3 notify test | set 's/^/ns3 /' | cat_i + fi sleep 1 done @@ -186,10 +209,24 @@ echo_i " this result should be AXFR" cp ns3/subtest1.db ns3/subtest.db # change to sub.test zone, should be AXFR $RNDCCMD 10.53.0.3 reload +#wait for master to reload zone for i in 0 1 2 3 4 5 6 7 8 9 +do + $DIG $DIGOPTS +tcp @10.53.0.3 SOA sub.test > dig.out + grep -i "hostmaster\.test\..3" dig.out > /dev/null && break + sleep 1 +done + +#wait for slave to transfer zone +for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 do $DIG $DIGOPTS +tcp @10.53.0.4 SOA sub.test > dig.out grep -i "hostmaster\.test\..3" dig.out > /dev/null && break + + # re-notify if we've been waiting a long time + if [ $i -ge 5 ]; then + $RNDCCMD 10.53.0.3 notify sub.test | set 's/^/ns3 /' | cat_i + fi sleep 1 done @@ -212,10 +249,24 @@ echo_i " this result should be IXFR" cp ns3/mytest2.db ns3/mytest.db # change to test zone, should be IXFR $RNDCCMD 10.53.0.3 reload +# wait for master to reload zone for i in 0 1 2 3 4 5 6 7 8 9 +do + $DIG +tcp -p 5300 @10.53.0.3 SOA test > dig.out + grep -i "hostmaster\.test\..4" dig.out > /dev/null && break + sleep 1 +done + +# wait for slave to transfer zone +for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 do $DIG $DIGOPTS +tcp @10.53.0.4 SOA test > dig.out grep -i "hostmaster\.test\..4" dig.out > /dev/null && break + + # re-notify if we've been waiting a long time + if [ $i -ge 5 ]; then + $RNDCCMD 10.53.0.3 notify test | set 's/^/ns3 /' | cat_i + fi sleep 1 done