From: Ondřej Surý Date: Thu, 23 Feb 2023 10:10:39 +0000 (+0100) Subject: Pause the catz dbiterator while processing the zone X-Git-Tag: v9.19.11~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e7187601f88a15c61282db862f5025703a7a78a;p=thirdparty%2Fbind9.git Pause the catz dbiterator while processing the zone The dbiterator read-locks the whole zone and it stayed locked during whole processing time when catz is being read. Pause the iterator, so the updates to catz zone are not being blocked while processing the catz update. --- diff --git a/lib/dns/catz.c b/lib/dns/catz.c index cb112363368..b90fcd277c4 100644 --- a/lib/dns/catz.c +++ b/lib/dns/catz.c @@ -2285,6 +2285,9 @@ dns__catz_update_cb(void *data) { break; } + result = dns_dbiterator_pause(it); + RUNTIME_CHECK(result == ISC_R_SUCCESS); + if (!is_vers_processed) { /* Keep the version node to skip it later in the loop */ vers_node = node;