From 4d772cda3c7480778739227381942c8e4ed1197f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Thu, 9 Apr 2026 12:46:45 +0200 Subject: [PATCH] Reclaim only what the new delegation needs delegdb_cleanup() was overwriting the caller-supplied 'requested' value with (hiwater - lowater), so every overmem cleanup tried to free the full watermark band regardless of how much memory the new delegation actually needed. Drop the override so the caller's size is used: we now walk the SIEVE only until we have reclaimed enough room for the new node, leaving unrelated entries in place. --- lib/dns/deleg.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/dns/deleg.c b/lib/dns/deleg.c index df989c3b74..ae03ed1dda 100644 --- a/lib/dns/deleg.c +++ b/lib/dns/deleg.c @@ -465,7 +465,6 @@ delegdb_cleanup(dns_qp_t *qp, dns_delegdb_t *delegdb, size_t requested) { if (!isc_mem_isovermem(delegdb->mctx)) { return; } - requested = delegdb->hiwater - delegdb->lowater; while (reclaimed < requested) { node = ISC_SIEVE_NEXT(delegdb->lru[isc_tid()], visited, link);