From a44c81e210c6a74e69289e6f313396cd6be94b27 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 24 Feb 2020 16:28:04 +0700 Subject: [PATCH] fix race condition when creating the logger for the HTTP/3 server --- http3/server.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/http3/server.go b/http3/server.go index caa8b1c20..865c1fc68 100644 --- a/http3/server.go +++ b/http3/server.go @@ -71,7 +71,8 @@ type Server struct { listeners map[*quic.EarlyListener]struct{} closed utils.AtomicBool - logger utils.Logger + loggerOnce sync.Once + logger utils.Logger } // ListenAndServe listens on the UDP address s.Addr and calls s.Handler to handle HTTP/3 requests on incoming connections. @@ -112,7 +113,9 @@ func (s *Server) serveImpl(tlsConf *tls.Config, conn net.PacketConn) error { if s.Server == nil { return errors.New("use of http3.Server without http.Server") } - s.logger = utils.DefaultLogger.WithPrefix("server") + s.loggerOnce.Do(func() { + s.logger = utils.DefaultLogger.WithPrefix("server") + }) if tlsConf == nil { tlsConf = &tls.Config{}