From 156d97c549b0a7aba23e748c58fab5f60e39e6d4 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 18 Mar 2026 11:26:01 -0700 Subject: [PATCH] derp/derpserver: fix locking in a few expvar.Func metrics (#19031) Fixes #19030 Fixes tailscale/corp#38782 Change-Id: I53082059d4012b9765b5596f7023717282132888 Signed-off-by: Brad Fitzpatrick --- derp/derpserver/derpserver.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/derp/derpserver/derpserver.go b/derp/derpserver/derpserver.go index f1ca24b2d..66385dd77 100644 --- a/derp/derpserver/derpserver.go +++ b/derp/derpserver/derpserver.go @@ -2213,9 +2213,9 @@ func (s *Server) ExpVar() expvar.Var { m.Set("gauge_current_connections", &s.curClients) m.Set("gauge_current_home_connections", &s.curHomeClients) m.Set("gauge_current_notideal_connections", &s.curClientsNotIdeal) - m.Set("gauge_clients_total", expvar.Func(func() any { return len(s.clientsMesh) })) - m.Set("gauge_clients_local", expvar.Func(func() any { return len(s.clients) })) - m.Set("gauge_clients_remote", expvar.Func(func() any { return len(s.clientsMesh) - len(s.clients) })) + m.Set("gauge_clients_total", s.expVarFunc(func() any { return len(s.clientsMesh) })) + m.Set("gauge_clients_local", s.expVarFunc(func() any { return len(s.clients) })) + m.Set("gauge_clients_remote", s.expVarFunc(func() any { return len(s.clientsMesh) - len(s.clients) })) m.Set("gauge_current_dup_client_keys", &s.dupClientKeys) m.Set("gauge_current_dup_client_conns", &s.dupClientConns) m.Set("counter_total_dup_client_conns", &s.dupClientConnTotal)