]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4850. [bug] Named failed to restart with multiple added zones in
authorMark Andrews <marka@isc.org>
Wed, 27 Dec 2017 05:24:33 +0000 (16:24 +1100)
committerMark Andrews <marka@isc.org>
Wed, 27 Dec 2017 05:24:33 +0000 (16:24 +1100)
                        lmdb database. [RT #46889]

CHANGES
bin/named/server.c
bin/tests/system/addzone/tests.sh

diff --git a/CHANGES b/CHANGES
index 19fcd83c63cca70757540e8b124400a0602c8c67..9b0847456b25f3bcd5b3094a380a5859d32c3730 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+4850.  [bug]           Named failed to restart with multiple added zones in
+                       lmdb database. [RT #46889]
+
 4849.  [bug]           Duplicate zones could appear in the .nzf file if
                        addzone failed. [RT #46435]
 
index 034246b6dd0ad15a9c6708fc4b108f4a40918bff..c749aeda047fd92e23d43f30d56dc2755bbfa24a 100644 (file)
@@ -7397,7 +7397,7 @@ for_all_newzone_cfgs(newzone_cfg_cb_t callback, cfg_obj_t *config,
                     cfg_obj_t *vconfig, isc_mem_t *mctx, dns_view_t *view,
                     cfg_aclconfctx_t *actx, MDB_txn *txn, MDB_dbi dbi)
 {
-       const cfg_obj_t *zconfig, *zlist = NULL;
+       const cfg_obj_t *zconfig, *zlist;
        isc_result_t result = ISC_R_SUCCESS;
        cfg_obj_t *zconfigobj = NULL;
        isc_buffer_t *text = NULL;
@@ -7425,6 +7425,7 @@ for_all_newzone_cfgs(newzone_cfg_cb_t callback, cfg_obj_t *config,
                /*
                 * Extract zone configuration from configuration object.
                 */
+               zlist = NULL;
                result = cfg_map_get(zconfigobj, "zone", &zlist);
                if (result != ISC_R_SUCCESS) {
                        break;
index 77f12a3326fb345091c56f9d0ace56e79aa0bd81..4692abaec53992eda370d78f9dbc629f17293c47 100755 (executable)
@@ -686,5 +686,17 @@ then
     status=`expr $status + $ret`
 fi
 
+echo "I:check that named restarts with multiple added zones ($n)"
+ret=0
+$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 addzone "test4.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
+$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 addzone "test5.baz" '{ type master; file "e.db"; };' > /dev/null 2>&1 || ret=1
+$PERL $SYSTEMTESTTOP/stop.pl . ns3
+$PERL $SYSTEMTESTTOP/start.pl --noclean --restart . ns3 || ret=1
+$DIG -p 5300 @10.53.0.3 version.bind txt ch > dig.out.test$n || ret=1
+grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
+n=`expr $n + 1`
+if [ $ret != 0 ]; then echo "I:failed"; fi
+status=`expr $status + $ret`
+
 echo "I:exit status: $status"
 [ $status -eq 0 ] || exit 1