154 lines
5.1 KiB
Diff
154 lines
5.1 KiB
Diff
|
|
From c243daf8395bf8406f6697dde5ba62a25d188a1b Mon Sep 17 00:00:00 2001
|
||
|
|
From: Evan Hunt <each@isc.org>
|
||
|
|
Date: Mon, 11 Oct 2021 13:01:20 -0700
|
||
|
|
Subject: [PATCH] Add a regression test
|
||
|
|
|
||
|
|
Reconfigure the server without catalog-zone configuration, and then
|
||
|
|
put it back and reconfigure again, to confirm that there's no crash.
|
||
|
|
|
||
|
|
(cherry picked from commit bb411af31dd78ceda7a16f7ecfab483fb3746af9)
|
||
|
|
Conflict: NA
|
||
|
|
Reference: https://gitlab.isc.org/isc-projects/bind9/-/commit/c243daf8395bf8406f6697dde5ba62a25d188a1b
|
||
|
|
---
|
||
|
|
.../ns2/{named.conf.in => named1.conf.in} | 0
|
||
|
|
bin/tests/system/catz/ns2/named2.conf.in | 60 +++++++++++++++++++
|
||
|
|
bin/tests/system/catz/setup.sh | 2 +-
|
||
|
|
bin/tests/system/catz/tests.sh | 16 ++++-
|
||
|
|
4 files changed, 74 insertions(+), 4 deletions(-)
|
||
|
|
rename bin/tests/system/catz/ns2/{named.conf.in => named1.conf.in} (100%)
|
||
|
|
create mode 100644 bin/tests/system/catz/ns2/named2.conf.in
|
||
|
|
|
||
|
|
diff --git a/bin/tests/system/catz/ns2/named.conf.in b/bin/tests/system/catz/ns2/named1.conf.in
|
||
|
|
similarity index 100%
|
||
|
|
rename from bin/tests/system/catz/ns2/named.conf.in
|
||
|
|
rename to bin/tests/system/catz/ns2/named1.conf.in
|
||
|
|
diff --git a/bin/tests/system/catz/ns2/named2.conf.in b/bin/tests/system/catz/ns2/named2.conf.in
|
||
|
|
new file mode 100644
|
||
|
|
index 0000000000..fcd99ca0d4
|
||
|
|
--- /dev/null
|
||
|
|
+++ b/bin/tests/system/catz/ns2/named2.conf.in
|
||
|
|
@@ -0,0 +1,60 @@
|
||
|
|
+/*
|
||
|
|
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||
|
|
+ *
|
||
|
|
+ * 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 http://mozilla.org/MPL/2.0/.
|
||
|
|
+ *
|
||
|
|
+ * See the COPYRIGHT file distributed with this work for additional
|
||
|
|
+ * information regarding copyright ownership.
|
||
|
|
+ */
|
||
|
|
+
|
||
|
|
+include "../../common/rndc.key";
|
||
|
|
+
|
||
|
|
+controls {
|
||
|
|
+ inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+options {
|
||
|
|
+ query-source address 10.53.0.2;
|
||
|
|
+ notify-source 10.53.0.2;
|
||
|
|
+ transfer-source 10.53.0.2;
|
||
|
|
+ port @PORT@;
|
||
|
|
+ pid-file "named.pid";
|
||
|
|
+ listen-on { 10.53.0.2; };
|
||
|
|
+ listen-on-v6 { fd92:7065:b8e:ffff::2; };
|
||
|
|
+ notify no;
|
||
|
|
+ recursion no;
|
||
|
|
+ serial-query-rate 100;
|
||
|
|
+ # removed catalog-zone option, otherwise this is
|
||
|
|
+ # identical to named1.conf.in
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+zone "catalog1.example" {
|
||
|
|
+ type secondary;
|
||
|
|
+ file "catalog1.example.db";
|
||
|
|
+ primaries { 10.53.0.1; };
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+zone "catalog2.example" {
|
||
|
|
+ type secondary;
|
||
|
|
+ file "catalog2.example.db";
|
||
|
|
+ primaries { 10.53.0.3; };
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+zone "catalog3.example" {
|
||
|
|
+ type secondary;
|
||
|
|
+ file "catalog3.example.db";
|
||
|
|
+ primaries { 10.53.0.1; };
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+zone "catalog4.example" {
|
||
|
|
+ type secondary;
|
||
|
|
+ file "catalog4.example.db";
|
||
|
|
+ primaries { 10.53.0.1; };
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+key tsig_key. {
|
||
|
|
+ secret "LSAnCU+Z";
|
||
|
|
+ algorithm hmac-md5;
|
||
|
|
+};
|
||
|
|
diff --git a/bin/tests/system/catz/setup.sh b/bin/tests/system/catz/setup.sh
|
||
|
|
index 960cffe9a7..e23ea4f058 100644
|
||
|
|
--- a/bin/tests/system/catz/setup.sh
|
||
|
|
+++ b/bin/tests/system/catz/setup.sh
|
||
|
|
@@ -15,7 +15,7 @@ SYSTEMTESTTOP=..
|
||
|
|
$SHELL clean.sh
|
||
|
|
|
||
|
|
copy_setports ns1/named.conf.in ns1/named.conf
|
||
|
|
-copy_setports ns2/named.conf.in ns2/named.conf
|
||
|
|
+copy_setports ns2/named1.conf.in ns2/named.conf
|
||
|
|
copy_setports ns3/named.conf.in ns3/named.conf
|
||
|
|
|
||
|
|
cp -f ns1/catalog.example.db.in ns1/catalog1.example.db
|
||
|
|
diff --git a/bin/tests/system/catz/tests.sh b/bin/tests/system/catz/tests.sh
|
||
|
|
index c443b739ff..cd2084e59a 100644
|
||
|
|
--- a/bin/tests/system/catz/tests.sh
|
||
|
|
+++ b/bin/tests/system/catz/tests.sh
|
||
|
|
@@ -1179,7 +1179,7 @@ status=$((status+ret))
|
||
|
|
n=$((n+1))
|
||
|
|
echo_i "reconfiguring secondary - adding catalog4 catalog zone ($n)"
|
||
|
|
ret=0
|
||
|
|
-sed -e "s/^#T1//g" < ns2/named.conf.in > ns2/named.conf.tmp
|
||
|
|
+sed -e "s/^#T1//g" < ns2/named1.conf.in > ns2/named.conf.tmp
|
||
|
|
copy_setports ns2/named.conf.tmp ns2/named.conf
|
||
|
|
rndccmd 10.53.0.2 reconfig || ret=1
|
||
|
|
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||
|
|
@@ -1210,7 +1210,7 @@ status=$((status+ret))
|
||
|
|
n=$((n+1))
|
||
|
|
echo_i "reconfiguring secondary - removing catalog4 catalog zone, adding non-existent catalog5 catalog zone ($n)"
|
||
|
|
ret=0
|
||
|
|
-sed -e "s/^#T2//" < ns2/named.conf.in > ns2/named.conf.tmp
|
||
|
|
+sed -e "s/^#T2//" < ns2/named1.conf.in > ns2/named.conf.tmp
|
||
|
|
copy_setports ns2/named.conf.tmp ns2/named.conf
|
||
|
|
$RNDC -c ../common/rndc.conf -s 10.53.0.2 -p 9953 reconfig > /dev/null 2>&1 && ret=1
|
||
|
|
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||
|
|
@@ -1219,7 +1219,7 @@ status=$((status+ret))
|
||
|
|
n=$((n+1))
|
||
|
|
echo_i "reconfiguring secondary - removing non-existent catalog5 catalog zone ($n)"
|
||
|
|
ret=0
|
||
|
|
-copy_setports ns2/named.conf.in ns2/named.conf
|
||
|
|
+copy_setports ns2/named1.conf.in ns2/named.conf
|
||
|
|
rndccmd 10.53.0.2 reconfig || ret=1
|
||
|
|
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||
|
|
status=$((status+ret))
|
||
|
|
@@ -1730,5 +1730,15 @@ wait_for_no_soa @10.53.0.2 dom16.example. dig.out.test$n || ret=1
|
||
|
|
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||
|
|
status=$((status+ret))
|
||
|
|
|
||
|
|
+n=$((n+1))
|
||
|
|
+echo_i "checking that reconfig can delete and restore catalog zone configuration ($n)"
|
||
|
|
+ret=0
|
||
|
|
+copy_setports ns2/named2.conf.in ns2/named.conf
|
||
|
|
+rndccmd 10.53.0.2 reconfig || ret=1
|
||
|
|
+copy_setports ns2/named1.conf.in ns2/named.conf
|
||
|
|
+rndccmd 10.53.0.2 reconfig || ret=1
|
||
|
|
+if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||
|
|
+status=$((status+ret))
|
||
|
|
+
|
||
|
|
echo_i "exit status: $status"
|
||
|
|
[ $status -eq 0 ] || exit 1
|
||
|
|
--
|
||
|
|
2.23.0
|
||
|
|
|