From: Otto Moerbeek Date: Tue, 6 Dec 2022 10:18:56 +0000 (+0100) Subject: Close a race: some test immediately query metrics when a query result is received. X-Git-Tag: dnsdist-1.8.0-rc1~165^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5676bc113abc8f743bfb783efbb05e01c768e39;p=thirdparty%2Fpdns.git 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. --- 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));