lib/api: Shut the api down gracefully (fixes #7138) (#7157)

This commit is contained in:
Simon Frei
2020-11-26 15:49:39 +01:00
committed by GitHub
parent bf7d03d029
commit e1b958284e
+7 -1
View File
@@ -415,7 +415,13 @@ func (s *service) Serve(ctx context.Context) error {
// Restart due to listen/serve failure // Restart due to listen/serve failure
l.Warnln("GUI/API:", err, "(restarting)") l.Warnln("GUI/API:", err, "(restarting)")
} }
srv.Close() // Give it a moment to shut down gracefully, e.g. if we are restarting
// due to a config change through the API, let that finish successfully.
timeout, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
defer cancel()
if err := srv.Shutdown(timeout); err == timeout.Err() {
srv.Close()
}
return err return err
} }