diff --git a/lib/ns/query.c b/lib/ns/query.c index 18ab138b1c..1b3261de25 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -7575,6 +7575,14 @@ query_usestale(query_ctx_t *qctx, isc_result_t result) { return (false); } + if (result == DNS_R_DUPLICATE || result == DNS_R_DROP) { + /* + * Don't enable serve-stale if the result signals a duplicate + * query or query that is being dropped. + */ + return (false); + } + qctx_clean(qctx); qctx_freedata(qctx);