From: Remi Gacogne Date: Mon, 29 Sep 2025 12:39:14 +0000 (+0200) Subject: dnsdist: Make the health-check latency atomic X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3919d1c5dd3ef7ed82ba99520462096c5defe7cc;p=thirdparty%2Fpdns.git dnsdist: Make the health-check latency atomic Otherwise TSAN rightfully complain that it is written from one thread and read from several others. Signed-off-by: Remi Gacogne --- diff --git a/pdns/dnsdistdist/dnsdist-healthchecks.cc b/pdns/dnsdistdist/dnsdist-healthchecks.cc index e0d82f8bf..3081efdcb 100644 --- a/pdns/dnsdistdist/dnsdist-healthchecks.cc +++ b/pdns/dnsdistdist/dnsdist-healthchecks.cc @@ -134,7 +134,7 @@ static bool handleResponse(std::shared_ptr& data) return false; } - data->d_ds->d_healthCheckLatency = data->d_elapsed.udiff(); + data->d_ds->d_healthCheckLatency.store(data->d_elapsed.udiff()); return true; } diff --git a/pdns/dnsdistdist/dnsdist.hh b/pdns/dnsdistdist/dnsdist.hh index ecc1caca6..eff68ab13 100644 --- a/pdns/dnsdistdist/dnsdist.hh +++ b/pdns/dnsdistdist/dnsdist.hh @@ -719,10 +719,10 @@ public: std::vector> d_xskSockets; #endif std::atomic idOffset{0}; + std::atomic d_healthCheckLatency{0.0}; size_t socketsOffset{0}; double latencyUsec{0.0}; double latencyUsecTCP{0.0}; - double d_healthCheckLatency{0.0}; unsigned int d_nextCheck{0}; uint16_t currentCheckFailures{0}; std::atomic hashesComputed{false};