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()