Skip to content

Commit b21da90

Browse files
committed
fix: handle admin server shutdown timeout
1 parent 3c0df29 commit b21da90

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

admin/command_runner.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,16 @@ func (r *CommandRunner) runAdminServer(ctx irrecoverable.SignalerContext) error
284284
defer shutdownCancel()
285285

286286
if err := httpServer.Shutdown(shutdownCtx); err != nil {
287-
r.logger.Err(err).Msg("failed to shutdown http server")
288-
ctx.Throw(err)
287+
if errors.Is(err, context.DeadlineExceeded) {
288+
r.logger.Warn().Err(err).Msg("failed to shutdown http server gracefully; forcing close")
289+
if closeErr := httpServer.Close(); closeErr != nil {
290+
r.logger.Err(closeErr).Msg("failed to force close http server")
291+
ctx.Throw(closeErr)
292+
}
293+
} else {
294+
r.logger.Err(err).Msg("failed to shutdown http server")
295+
ctx.Throw(err)
296+
}
289297
}
290298
}
291299
}()

0 commit comments

Comments
 (0)