]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
chg: dev: Fix cache flush ordering on NTA expiry
authorOndřej Surý <ondrej@isc.org>
Fri, 20 Mar 2026 16:18:04 +0000 (17:18 +0100)
committerOndřej Surý <ondrej@isc.org>
Fri, 20 Mar 2026 16:18:04 +0000 (17:18 +0100)
dns_view_flushnode() was called in the delete_expired() async
callback, which runs after the query that detected the NTA expiry.
This created a race: the query would proceed with stale cached data
from the NTA period before the flush had a chance to run, resulting
in transient SERVFAIL with EDE 22 (No Reachable Authority).

Move dns_view_flushnode() into dns_ntatable_covered() so the cache
is flushed synchronously when the expiry is detected, before the
query continues.

Also simplify the expiry comparison in delete_expired() to a direct
pointer comparison (nta == pval) instead of comparing expiry
timestamps.

Merge branch 'ondrej/refactor-nta-using-RCU-delete-order-fix' into 'main'

See merge request isc-projects/bind9!11729


Trivial merge