From 51286ca63e33b75653cc61c64c85eac80d78746d Mon Sep 17 00:00:00 2001 From: Eliott Bouhana Date: Fri, 31 Jan 2025 16:33:03 +0100 Subject: [PATCH] remove data race from telemetry metrics hot pointer Signed-off-by: Eliott Bouhana --- internal/newtelemetry/globalclient.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/newtelemetry/globalclient.go b/internal/newtelemetry/globalclient.go index 5dd16f01b2..e996a7d8b7 100644 --- a/internal/newtelemetry/globalclient.go +++ b/internal/newtelemetry/globalclient.go @@ -21,7 +21,7 @@ var ( globalClientRecorder = internal.NewRecorder[Client]() // metricsHandleHotPointers contains all the metricsHotPointer, used to replay actions done before the actual MetricHandle is set - metricsHandleHotPointers []metricsHotPointer + metricsHandleHotPointers []*metricsHotPointer metricsHandleHotPointersMu sync.Mutex ) @@ -62,8 +62,7 @@ func SwapClient(client Client) { metricsHandleHotPointersMu.Lock() defer metricsHandleHotPointersMu.Unlock() for i := range metricsHandleHotPointers { - hotPointer := &metricsHandleHotPointers[i] - hotPointer.swap(hotPointer.maker(client)) + metricsHandleHotPointers[i].swap(metricsHandleHotPointers[i].maker(client)) } } } @@ -236,8 +235,9 @@ func newMetricsHotPointer(maker func(client Client) MetricHandle) *metricsHotPoi metricsHandleHotPointersMu.Lock() defer metricsHandleHotPointersMu.Unlock() - metricsHandleHotPointers = append(metricsHandleHotPointers, metricsHotPointer{maker: maker}) - return &metricsHandleHotPointers[len(metricsHandleHotPointers)-1] + hotPtr := &metricsHotPointer{maker: maker} + metricsHandleHotPointers = append(metricsHandleHotPointers, hotPtr) + return hotPtr } var metricLogLossOnce sync.Once