diff --git a/CHANGES b/CHANGES index 365a838d81..510d0c088a 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 c3ebfdc31d..817ce4f909 100644 --- a/bin/tests/system/ixfr/tests.sh +++ b/bin/tests/system/ixfr/tests.sh @@ -147,16 +147,39 @@ fi #echo_i "digging against slave: " #$DIG $DIGOPTS @10.53.0.4 a host1.test. -cp ns3/mytest1.db ns3/mytest.db -$RNDCCMD 10.53.0.3 reload - +# 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 + # slave should have gotten notify and updated for i in 0 1 2 3 4 5 6 7 8 9 @@ -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