From 155e05495e3f0f91d0fa6bef5a202cfa709c8f8d Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 15 Jan 2026 13:29:19 +0100 Subject: [PATCH] Fix shutdown timout bug --- cmd/cc-backend/main.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index 9b8cd1b0..1cc4c8cd 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -392,21 +392,26 @@ func runServer(ctx context.Context) error { close(errChan) }() + // Wait for either: + // 1. An error from server startup + // 2. Completion of all goroutines (normal shutdown or crash) select { case err := <-errChan: + // errChan will be closed when waitDone is closed, which happens + // when all goroutines complete (either from normal shutdown or error) if err != nil { return err } case <-time.After(100 * time.Millisecond): + // Give the server 100ms to start and report any immediate startup errors + // After that, just wait for normal shutdown completion select { case err := <-errChan: if err != nil { return err } case <-waitDone: - case <-time.After(45 * time.Second): - cclog.Error("Shutdown timeout after 45 seconds - forcing exit") - return fmt.Errorf("shutdown timeout exceeded") + // Normal shutdown completed } }