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.13.0~135^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67a8b5ec17b7f252cc96ba11935beb898dd211d6;p=thirdparty%2Fbind9.git wait for synchronization; re-notify slave if the transfer doesn't happen --- diff --git a/CHANGES b/CHANGES index 365a838d817..510d0c088ad 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +4902. [test] Improved the reliability of the 'ixfr' system + test. [GL #66] + 4901. [func] "dig +nssearch" now lists the name servers for a domain that time out, as well as the servers that respond. [GL #64] diff --git a/bin/tests/system/ixfr/tests.sh b/bin/tests/system/ixfr/tests.sh index c3ebfdc31dd..817ce4f909d 100644 --- a/bin/tests/system/ixfr/tests.sh +++ b/bin/tests/system/ixfr/tests.sh @@ -147,13 +147,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 @@ -181,10 +204,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 @@ -207,10 +244,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