]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Close a race: some test immediately query metrics when a query result is received.
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 6 Dec 2022 10:18:56 +0000 (11:18 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 12 Dec 2022 12:14:04 +0000 (13:14 +0100)
to avoid ordering issues, update metrics snap before answers are sent out.

pdns/pdns_recursor.cc

index b88c1987e3846efbf924c2e088f7271d415803c8..8ea06ca12c84d7e3e6374548512e8df1f2ad591a 100644 (file)
@@ -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));