From 4340e90396fffbd34378dbd6e0be7aa4afc9214c Mon Sep 17 00:00:00 2001 From: Nia Weiss Date: Fri, 26 Feb 2021 15:21:46 -0500 Subject: [PATCH] start HTTP handler after server initialization This fixes a variety of bugs where API requests would read uninitialized state, causing crashes or race conditions. Co-authored-by: Antonio Navarro Perez --- server/server.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/server/server.go b/server/server.go index c07ba17a4..ab94b40f5 100644 --- a/server/server.go +++ b/server/server.go @@ -169,19 +169,20 @@ func (m *Command) Start() (err error) { } } - go func() { - err := m.Handler.Serve() - if err != nil { - m.logger.Printf("handler serve error: %v", err) - } - }() - // Initialize server. if err = m.Server.Open(); err != nil { return errors.Wrap(err, "opening server") } + // Initialize HTTP. + go func() { + if err := m.Handler.Serve(); err != nil { + m.logger.Printf("handler serve error: %v", err) + } + }() m.logger.Printf("listening as %s\n", m.listenURI) + + // Initialize gRPC. go func() { if err := m.grpcServer.Serve(); err != nil { m.logger.Printf("grpc server error: %v", err)