From 3919d1c5dd3ef7ed82ba99520462096c5defe7cc Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 29 Sep 2025 14:39:14 +0200 Subject: [PATCH] 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 --- pdns/dnsdistdist/dnsdist-healthchecks.cc | 2 +- pdns/dnsdistdist/dnsdist.hh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-healthchecks.cc b/pdns/dnsdistdist/dnsdist-healthchecks.cc index e0d82f8bf6..3081efdcb1 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 ecc1caca66..eff68ab13b 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}; -- 2.47.3