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 <antnavper@gmail.com>
This commit is contained in:
Nia Weiss 2021-02-26 15:21:46 -05:00
parent 65e4496ea7
commit 4340e90396
No known key found for this signature in database
GPG key ID: 895E83409BFDA1BB

View file

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