From 5c7794c2e25c116817d815f1663bc37eb8265973 Mon Sep 17 00:00:00 2001 From: Weizhen Wang Date: Fri, 8 Aug 2025 19:05:00 +0800 Subject: [PATCH] server: use Atomic.Pointer in the Server.statusServer (#62903) close pingcap/tidb#62902 --- pkg/server/http_status.go | 2 +- pkg/server/server.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/server/http_status.go b/pkg/server/http_status.go index 85f22fe37c..7bef71565a 100644 --- a/pkg/server/http_status.go +++ b/pkg/server/http_status.go @@ -586,7 +586,7 @@ func (s *Server) startStatusServerAndRPCServer(serverMux *http.ServeMux) { } } - s.statusServer = statusServer + s.statusServer.Store(statusServer) s.grpcServer = grpcServer go util.WithRecovery(func() { diff --git a/pkg/server/server.go b/pkg/server/server.go index 267fefab42..5b670e9910 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -142,7 +142,7 @@ type Server struct { statusAddr string statusListener net.Listener - statusServer *http.Server + statusServer atomic.Pointer[http.Server] grpcServer *grpc.Server inShutdownMode *uatomic.Bool health *uatomic.Bool @@ -643,10 +643,10 @@ func (s *Server) closeListener() { terror.Log(errors.Trace(err)) s.socket = nil } - if s.statusServer != nil { - err := s.statusServer.Close() + if statusServer := s.statusServer.Load(); statusServer != nil { + err := statusServer.Close() terror.Log(errors.Trace(err)) - s.statusServer = nil + s.statusServer.Store(nil) } if s.grpcServer != nil { s.grpcServer.Stop()