Merge branch '3735-fix-rpz-shutdown-bugs-v9_18' into 'v9_18'

[9.18] Fix shutdown and error path bugs in the rpz unit

See merge request isc-projects/bind9!7519
This commit is contained in:
Arаm Sаrgsyаn 2023-02-14 11:19:02 +00:00
commit d68ef418f8
2 changed files with 6 additions and 4 deletions

View file

@ -59,6 +59,9 @@
not negotiate "dot" ALPN token could crash BIND
on shutdown. That has been fixed. [GL #3767]
6057. [bug] Fix shutdown and error path bugs in the rpz unit.
[GL #3735]
5850. [func] Run the RPZ update process on the offload threads.
[GL #3190]

View file

@ -1725,7 +1725,7 @@ update_nodes(dns_rpz_zone_t *rpz, isc_ht_t *newnodes) {
DNS_LOGMODULE_MASTER, ISC_LOG_ERROR,
"rpz: %s: failed to create DB iterator - %s",
domain, isc_result_totext(result));
goto cleanup;
return (result);
}
result = dns_dbiterator_first(updbit);
@ -1744,7 +1744,6 @@ update_nodes(dns_rpz_zone_t *rpz, isc_ht_t *newnodes) {
result = dns__rpz_shuttingdown(rpz->rpzs);
if (result != ISC_R_SUCCESS) {
dns_db_detachnode(rpz->updb, &node);
goto cleanup;
}
@ -1754,7 +1753,6 @@ update_nodes(dns_rpz_zone_t *rpz, isc_ht_t *newnodes) {
DNS_LOGMODULE_MASTER, ISC_LOG_ERROR,
"rpz: %s: failed to get dbiterator - %s",
domain, isc_result_totext(result));
dns_db_detachnode(rpz->updb, &node);
goto cleanup;
}
@ -1918,7 +1916,7 @@ update_rpz_cb(void *data) {
result = dns__rpz_shuttingdown(rpz->rpzs);
if (result != ISC_R_SUCCESS) {
goto cleanup;
goto shuttingdown;
}
isc_ht_init(&newnodes, rpz->rpzs->mctx, 1, ISC_HT_CASE_SENSITIVE);
@ -1939,6 +1937,7 @@ update_rpz_cb(void *data) {
cleanup:
isc_ht_destroy(&newnodes);
shuttingdown:
rpz->updateresult = result;
}