]> git.ipfire.org Git - thirdparty/bind9.git/commit
[9.20] chg: dev: Skip cache flush ordering on NTA expiry
authorOndřej Surý <ondrej@isc.org>
Mon, 23 Mar 2026 10:08:04 +0000 (11:08 +0100)
committerOndřej Surý <ondrej@isc.org>
Mon, 23 Mar 2026 10:08:04 +0000 (11:08 +0100)
commit5f97f5b0501b2bb78a336f208132f47933366b4d
treee960a0efc309eb08e2bbcdd4d731af46941ba1b1
parentc009a48ed55bde723fbdb2b7d68761c81c354c5b
parentd3965a91b6c7c5d0f1ba86339e237a923eef5553
[9.20] chg: dev: Skip cache flush ordering on NTA expiry

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).

Skip dns_view_flushnode() in the older branches as the solutions for
older branches are too complicated and this was not a critical bug.

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

Backport of MR !11729

Merge branch 'backport-ondrej/refactor-nta-using-RCU-delete-order-fix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11730