From: Aram Sargsyan Date: Tue, 21 Mar 2023 09:56:36 +0000 (+0000) Subject: Hold a catz reference while the update process is running X-Git-Tag: v9.19.12~72^2~1 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=dc2b8bb1c970babe774dd32048ea182d74e8fb36;p=thirdparty%2Fbind9.git Hold a catz reference while the update process is running This should delay the catalog zone from being destroyed during shutdown, if the update process is still running. Doing this should not introduce significant shutdown delays, as the update function constantly checks the 'shuttingdown' flag and cancels the process if it is set. --- diff --git a/lib/dns/catz.c b/lib/dns/catz.c index 73d30b62a0d..58cd369312a 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -2124,6 +2124,7 @@ dns__catz_timer_cb(void *arg) { ISC_LOG_INFO, "catz: %s: reload start", domain); dns_catz_ref_catzs(catz->catzs); + dns_catz_ref_catz(catz); isc_work_enqueue(catz->loop, dns__catz_update_cb, dns__catz_done_cb, catz); @@ -2543,6 +2544,7 @@ dns__catz_done_cb(void *data) { ISC_LOG_INFO, "catz: %s: reload done: %s", dname, isc_result_totext(catz->updateresult)); + dns_catz_unref_catz(catz); dns_catz_unref_catzs(catz->catzs); }