From 399861bc88d994ede35249b866ef1a5367fcb8c0 Mon Sep 17 00:00:00 2001 From: Carlos Tadeu Panato Junior Date: Wed, 18 Jan 2023 11:16:23 +0200 Subject: [PATCH] fix: handle the process kill to not fail the pod and instead exit clean (#527) Signed-off-by: cpanato Signed-off-by: cpanato --- cmd/cloudsqlproxy/main.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/cloudsqlproxy/main.go b/cmd/cloudsqlproxy/main.go index 9aacd9a5a..d63ff74c0 100644 --- a/cmd/cloudsqlproxy/main.go +++ b/cmd/cloudsqlproxy/main.go @@ -18,6 +18,7 @@ import ( "log" "os" "os/exec" + "strings" "chainguard.dev/exitdir" "knative.dev/pkg/signals" @@ -29,15 +30,18 @@ func main() { // Leverage exitdir to use file based lifecycle management. ctx := exitdir.Aware(signals.NewContext()) - log.Printf("Starting the cloud sql proxy") + log.Println("Starting the cloud sql proxy...") cmd := exec.CommandContext(ctx, "/cloud_sql_proxy", os.Args[1:]...) //nolint: gosec cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - if err := cmd.Run(); err != nil { + err := cmd.Run() + if err != nil && strings.Contains(err.Error(), "signal: killed") { + log.Println("Got signal to shutdown") + } else if err != nil { log.Panic(err) } <-ctx.Done() - log.Println("Exiting") + log.Println("Exiting cloud sql proxy...") }