From bce981e324cc7f6bf1d92fd5531b7219d5db8821 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Thu, 12 Mar 2026 14:07:19 +0000 Subject: [PATCH] fix: gateway shutdown Seems to have been removed in https://github.com/storacha/guppy/pull/315 by accident. --- cmd/gateway/serve.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cmd/gateway/serve.go b/cmd/gateway/serve.go index 7bb1fd5f..e52ea679 100644 --- a/cmd/gateway/serve.go +++ b/cmd/gateway/serve.go @@ -1,6 +1,7 @@ package gateway import ( + "context" _ "embed" "errors" "fmt" @@ -292,6 +293,17 @@ var serveCmd = &cobra.Command{ e.GET("/routing/v1/peers/*", routingHandler) } + // shut down the server gracefully on context cancellation + go func() { + <-cmd.Context().Done() + cmd.Println("\nShutting down server...") + ctx, cancel := context.WithTimeout(cmd.Context(), time.Second*5) + defer cancel() + if err := e.Shutdown(ctx); err != nil { + cmd.PrintErrf("shutting down server: %s", err.Error()) + } + }() + // print banner after short delay to ensure it only appears if no errors // occurred during startup timer := time.NewTimer(time.Second)