From 66ef05849f2f731ca1defab5e45620559ead689a Mon Sep 17 00:00:00 2001 From: Manuel Alejandro de Brito Fontes Date: Sat, 25 Jan 2020 14:52:31 -0300 Subject: [PATCH] Refactor how to handle sigterm and nginx process goroutine (#4959) --- cmd/nginx/main.go | 15 +++++++-------- internal/ingress/controller/nginx.go | 5 +++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cmd/nginx/main.go b/cmd/nginx/main.go index 9d9a66007..eed0485ad 100644 --- a/cmd/nginx/main.go +++ b/cmd/nginx/main.go @@ -125,23 +125,22 @@ func main() { } mc.Start() - ngx := controller.NewNGINXController(conf, mc) - go handleSigterm(ngx, func(code int) { - os.Exit(code) - }) - - mux := http.NewServeMux() - if conf.EnableProfiling { go registerProfiler() } + ngx := controller.NewNGINXController(conf, mc) + + mux := http.NewServeMux() registerHealthz(nginx.HealthPath, ngx, mux) registerMetrics(reg, mux) go startHTTPServer(conf.ListenPorts.Health, mux) + go ngx.Start() - ngx.Start() + handleSigterm(ngx, func(code int) { + os.Exit(code) + }) } type exiter func(code int) diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 4809837dc..d393e084e 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -334,7 +334,7 @@ func (n *NGINXController) Start() { select { case err := <-n.ngxErrCh: if n.isShuttingDown { - break + return } // if the nginx master process dies the workers continue to process requests, @@ -358,6 +358,7 @@ func (n *NGINXController) Start() { if n.isShuttingDown { break } + if evt, ok := event.(store.Event); ok { klog.V(3).Infof("Event %v received - object %v", evt.Type, evt.Obj) if evt.Type == store.ConfigurationEvent { @@ -371,7 +372,7 @@ func (n *NGINXController) Start() { klog.Warningf("Unexpected event type received %T", event) } case <-n.stopCh: - break + return } } }