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
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
}