From b5676bc113abc8f743bfb783efbb05e01c768e39 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Tue, 6 Dec 2022 11:18:56 +0100 Subject: [PATCH] Close a race: some test immediately query metrics when a query result is received. to avoid ordering issues, update metrics snap before answers are sent out. --- pdns/pdns_recursor.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pdns/pdns_recursor.cc b/pdns/pdns_recursor.cc index b88c1987e3..8ea06ca12c 100644 --- a/pdns/pdns_recursor.cc +++ b/pdns/pdns_recursor.cc @@ -1626,6 +1626,11 @@ void startDoResolve(void* p) dq.validationState, std::move(pbDataForCache), dc->d_tcp); } + + if (g_regressionTestMode) { + t_Counters.updateSnap(g_regressionTestMode); + } + if (!dc->d_tcp) { struct msghdr msgh; struct iovec iov; @@ -1807,9 +1812,6 @@ void startDoResolve(void* p) sr.d_slog->info(Logr::Error, "Any other exception in a resolver context")); } - if (g_regressionTestMode) { - t_Counters.updateSnap(g_regressionTestMode); - } runTaskOnce(g_logCommonErrors); t_Counters.at(rec::Counter::maxMThreadStackUsage) = max(MT->getMaxStackUsage(), t_Counters.at(rec::Counter::maxMThreadStackUsage)); -- 2.47.2