@@ -390,7 +390,7 @@ func serveGatewayInsecure(ctx context.Context, pluginRegistry *plugins.Registry,
390
390
391
391
go func () {
392
392
if err := grpcServer .Serve (lis ); err != nil {
393
- logger .Fatalf (ctx , "Failed to create GRPC Server, Err: " , err )
393
+ logger .Fatalf (ctx , "Failed to create GRPC Server, Err: %v " , err )
394
394
}
395
395
}()
396
396
@@ -437,22 +437,21 @@ func serveGatewayInsecure(ctx context.Context, pluginRegistry *plugins.Registry,
437
437
sigCh := make (chan os.Signal , 1 )
438
438
signal .Notify (sigCh , syscall .SIGINT , syscall .SIGTERM )
439
439
<- sigCh
440
+ time .Sleep (1 * time .Second )
440
441
441
- shutdownCtx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
442
- defer cancel ()
443
-
444
- if err := server .Shutdown (shutdownCtx ); err != nil {
445
- logger .Errorf (ctx , "Failed to shutdown HTTP server: %v" , err )
446
- }
442
+ // force to shut down servers after 10 seconds
443
+ timer := time .AfterFunc (10 * time .Second , func () {
444
+ logger .Infof (ctx , "Server couldn't stop gracefully in time. Doing force stop." )
445
+ server .Close ()
446
+ grpcServer .Stop ()
447
+ })
448
+ defer timer .Stop ()
447
449
448
- grpcShutdownCtx , grpcCancel := context .WithTimeout (context .Background (), 10 * time .Second )
449
- defer grpcCancel ()
450
+ grpcServer .GracefulStop ()
450
451
451
- go func () {
452
- grpcServer .GracefulStop ()
453
- grpcCancel ()
454
- }()
455
- <- grpcShutdownCtx .Done ()
452
+ if err := server .Shutdown (ctx ); err != nil {
453
+ logger .Errorf (ctx , "Failed to gracefully shutdown HTTP server: %v" , err )
454
+ }
456
455
457
456
logger .Infof (ctx , "Servers gracefully stopped" )
458
457
return nil
0 commit comments