From 4687340850f8871ddb646f7ab83c25e4fa1151be Mon Sep 17 00:00:00 2001 From: MSP-Greg Date: Wed, 18 Sep 2019 13:46:09 -0500 Subject: [PATCH] PR #1952 --- lib/puma/cluster.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/puma/cluster.rb b/lib/puma/cluster.rb index 01d951ce75..86c1b3ec0e 100644 --- a/lib/puma/cluster.rb +++ b/lib/puma/cluster.rb @@ -220,8 +220,10 @@ def check_workers(force=false) log "- Stopping #{w.pid} for phased upgrade..." end - w.term - log "- #{w.signal} sent to #{w.pid}..." + unless w.term? + w.term + log "- #{w.signal} sent to #{w.pid}..." + end end end end @@ -271,6 +273,7 @@ def worker(index, master) server = start_server Signal.trap "SIGTERM" do + @worker_write << "e#{Process.pid}\n" rescue nil server.stop end @@ -505,8 +508,11 @@ def run w.boot! log "- Worker #{w.index} (pid: #{pid}) booted, phase: #{w.phase}" force_check = true + when "e" + # external term, see worker method, Signal.trap "SIGTERM" + w.instance_variable_set :@term, true when "t" - w.term + w.term unless w.term? force_check = true when "p" w.ping!(result.sub(/^\d+/,'').chomp)