mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
Test rndc retransfer -force
Use a big zone and the slow transfer mode. Initiate a retransfer, wait several seconds, then initiate a retransfer using a '-force' argument, which should cancel the previous transfer and start a new one.
This commit is contained in:
15
bin/tests/system/xfer/ns1/axfr-rndc-retransfer-force.db
Normal file
15
bin/tests/system/xfer/ns1/axfr-rndc-retransfer-force.db
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
;
|
||||||
|
; SPDX-License-Identifier: MPL-2.0
|
||||||
|
;
|
||||||
|
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
;
|
||||||
|
; See the COPYRIGHT file distributed with this work for additional
|
||||||
|
; information regarding copyright ownership.
|
||||||
|
|
||||||
|
$TTL 3600
|
||||||
|
@ IN SOA . . 0 0 0 0 0
|
||||||
|
@ IN NS .
|
||||||
|
$GENERATE 1-5000 host$ TXT data-$
|
@@ -47,6 +47,7 @@ zone "edns-expire" {
|
|||||||
file "edns-expire.db";
|
file "edns-expire.db";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
zone "axfr-max-transfer-time" {
|
zone "axfr-max-transfer-time" {
|
||||||
type primary;
|
type primary;
|
||||||
file "axfr-max-transfer-time.db";
|
file "axfr-max-transfer-time.db";
|
||||||
@@ -57,6 +58,11 @@ zone "axfr-max-idle-time" {
|
|||||||
file "axfr-max-idle-time.db";
|
file "axfr-max-idle-time.db";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "axfr-rndc-retransfer-force" {
|
||||||
|
type primary;
|
||||||
|
file "axfr-rndc-retransfer-force.db";
|
||||||
|
};
|
||||||
|
|
||||||
zone "axfr-too-big" {
|
zone "axfr-too-big" {
|
||||||
type primary;
|
type primary;
|
||||||
file "axfr-too-big.db";
|
file "axfr-too-big.db";
|
||||||
|
@@ -40,3 +40,8 @@ zone "axfr-max-transfer-time" {
|
|||||||
type primary;
|
type primary;
|
||||||
file "axfr-max-transfer-time.db";
|
file "axfr-max-transfer-time.db";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "axfr-rndc-retransfer-force" {
|
||||||
|
type primary;
|
||||||
|
file "axfr-rndc-retransfer-force.db";
|
||||||
|
};
|
||||||
|
@@ -71,6 +71,12 @@ zone "axfr-max-idle-time" {
|
|||||||
file "axfr-max-idle-time.bk";
|
file "axfr-max-idle-time.bk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zone "axfr-rndc-retransfer-force" {
|
||||||
|
type secondary;
|
||||||
|
primaries { 10.53.0.1; };
|
||||||
|
file "axfr-rndc-retransfer-force.bk";
|
||||||
|
};
|
||||||
|
|
||||||
zone "axfr-too-big" {
|
zone "axfr-too-big" {
|
||||||
type secondary;
|
type secondary;
|
||||||
max-records 30;
|
max-records 30;
|
||||||
|
@@ -646,27 +646,50 @@ wait_for_message() (
|
|||||||
grep -F "$1" wait_for_message.$n >/dev/null
|
grep -F "$1" wait_for_message.$n >/dev/null
|
||||||
)
|
)
|
||||||
|
|
||||||
nextpart ns6/named.run >/dev/null
|
# Restart ns1 with -T transferslowly
|
||||||
|
|
||||||
n=$((n + 1))
|
|
||||||
echo_i "test max-transfer-time-in with 1 second timeout ($n)"
|
|
||||||
stop_server ns1
|
stop_server ns1
|
||||||
copy_setports ns1/named2.conf.in ns1/named.conf
|
copy_setports ns1/named2.conf.in ns1/named.conf
|
||||||
start_server --noclean --restart --port ${PORT} ns1 -- "-D xfer-ns1 $NS_PARAMS -T transferinsecs -T transferslowly"
|
start_server --noclean --restart --port ${PORT} ns1 -- "-D xfer-ns1 $NS_PARAMS -T transferinsecs -T transferslowly"
|
||||||
sleep 1
|
sleep 1
|
||||||
$RNDCCMD 10.53.0.6 retransfer axfr-max-transfer-time 2>&1 | sed 's/^/ns6 /' | cat_i
|
|
||||||
|
nextpart ns6/named.run >/dev/null
|
||||||
|
|
||||||
|
n=$((n + 1))
|
||||||
|
echo_i "test rndc retransfer -force ($n)"
|
||||||
tmp=0
|
tmp=0
|
||||||
retry_quiet 10 wait_for_message "maximum transfer time exceeded: timed out" || tmp=1
|
$RNDCCMD 10.53.0.6 retransfer axfr-rndc-retransfer-force 2>&1 | sed 's/^/ns6 /' | cat_i
|
||||||
|
# Wait for at least one message
|
||||||
|
msg="'axfr-rndc-retransfer-force/IN' from 10.53.0.1#${PORT}: received"
|
||||||
|
retry_quiet 5 wait_for_message "$msg" || tmp=1
|
||||||
|
# Issue a retransfer-force command which should cancel the ongoing transfer and start a new one
|
||||||
|
$RNDCCMD 10.53.0.6 retransfer -force axfr-rndc-retransfer-force 2>&1 | sed 's/^/ns6 /' | cat_i
|
||||||
|
msg="'axfr-rndc-retransfer-force/IN' from 10.53.0.1#${PORT}: Transfer status: operation canceled"
|
||||||
|
retry_quiet 5 wait_for_message "$msg" || tmp=1
|
||||||
|
# Wait for the new transfer to complete successfully
|
||||||
|
msg="'axfr-rndc-retransfer-force/IN' from 10.53.0.1#${PORT}: Transfer status: success"
|
||||||
|
retry_quiet 30 wait_for_message "$msg" || tmp=1
|
||||||
|
if test $tmp != 0; then echo_i "failed"; fi
|
||||||
status=$((status + tmp))
|
status=$((status + tmp))
|
||||||
|
|
||||||
nextpart ns6/named.run >/dev/null
|
nextpart ns6/named.run >/dev/null
|
||||||
|
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
echo_i "test max-transfer-idle-in with 50 seconds timeout ($n)"
|
echo_i "test max-transfer-time-in with 1 second timeout ($n)"
|
||||||
|
$RNDCCMD 10.53.0.6 retransfer axfr-max-transfer-time 2>&1 | sed 's/^/ns6 /' | cat_i
|
||||||
|
tmp=0
|
||||||
|
retry_quiet 10 wait_for_message "maximum transfer time exceeded: timed out" || tmp=1
|
||||||
|
status=$((status + tmp))
|
||||||
|
|
||||||
|
# Restart ns1 with -T transferstuck
|
||||||
stop_server ns1
|
stop_server ns1
|
||||||
copy_setports ns1/named3.conf.in ns1/named.conf
|
copy_setports ns1/named3.conf.in ns1/named.conf
|
||||||
start_server --noclean --restart --port ${PORT} ns1 -- "-D xfer-ns1 $NS_PARAMS -T transferinsecs -T transferstuck"
|
start_server --noclean --restart --port ${PORT} ns1 -- "-D xfer-ns1 $NS_PARAMS -T transferinsecs -T transferstuck"
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
|
nextpart ns6/named.run >/dev/null
|
||||||
|
|
||||||
|
n=$((n + 1))
|
||||||
|
echo_i "test max-transfer-idle-in with 50 seconds timeout ($n)"
|
||||||
start=$(date +%s)
|
start=$(date +%s)
|
||||||
$RNDCCMD 10.53.0.6 retransfer axfr-max-idle-time 2>&1 | sed 's/^/ns6 /' | cat_i
|
$RNDCCMD 10.53.0.6 retransfer axfr-max-idle-time 2>&1 | sed 's/^/ns6 /' | cat_i
|
||||||
tmp=0
|
tmp=0
|
||||||
|
Reference in New Issue
Block a user