From bfc5467b00aea58e860da9bc3c756e1c744c75d1 Mon Sep 17 00:00:00 2001 From: Y Date: Thu, 20 May 2021 22:49:06 +0630 Subject: [PATCH] Fix sigterm misbehavior (#2629) * Log error if worker can not be started * Removed sleeping of worker * Runned rubocop --- lib/puma/cluster/worker.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/puma/cluster/worker.rb b/lib/puma/cluster/worker.rb index daf7c486db..8060f75847 100644 --- a/lib/puma/cluster/worker.rb +++ b/lib/puma/cluster/worker.rb @@ -33,7 +33,7 @@ def run Signal.trap "SIGINT", "IGNORE" Signal.trap "SIGCHLD", "DEFAULT" - Thread.new do + Thread.new do Puma.set_thread_name "worker check pipe" IO.select [@check_pipe] log "! Detected parent died, dying" @@ -54,7 +54,14 @@ def run # things in shape before booting the app. @launcher.config.run_hooks :before_worker_boot, index, @launcher.events + begin server = @server ||= start_server + rescue Exception => e + log "! Unable to start worker" + log e.backtrace[0] + exit 1 + end + restart_server = Queue.new << true << false fork_worker = @options[:fork_worker] && index == 0