]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
wait for synchronization; re-notify slave if the transfer doesn't happen
authorEvan Hunt <each@isc.org>
Wed, 21 Feb 2018 06:09:54 +0000 (17:09 +1100)
committerEvan Hunt <each@isc.org>
Mon, 26 Feb 2018 06:18:30 +0000 (22:18 -0800)
CHANGES
bin/tests/system/ixfr/tests.sh

diff --git a/CHANGES b/CHANGES
index 365a838d817873446fb6d041ed0259b3441c284a..510d0c088ad3a101749082c38a77626bd792bd97 100644 (file)
--- 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]
index c3ebfdc31dd99591824d410484f62a6d88e5ae8d..817ce4f909d8319eb02e16e6d425bf2963cb7aed 100644 (file)
@@ -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