From 77722599c0ca66b20adfdcffe58b612353ab2def Mon Sep 17 00:00:00 2001 From: John Bachir Date: Sat, 11 Sep 2021 01:31:34 +0100 Subject: [PATCH 1/3] coexist with other signal handlers --- lib/sidekiq/cli.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index df6339a67..cd66459f5 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -46,7 +46,10 @@ def run(boot_app: true) # USR1 and USR2 don't work on the JVM sigs << "USR2" if Sidekiq.pro? && !jruby? sigs.each do |sig| - trap sig do + old_handler = Signal.trap(sig) do + if old_handler.respond_to?(:call) + old_handler.call + end self_write.puts(sig) end rescue ArgumentError From f6245d3b2bc733d10970c293cf97364928e58da0 Mon Sep 17 00:00:00 2001 From: John Bachir Date: Mon, 13 Sep 2021 00:02:10 +0100 Subject: [PATCH 2/3] don't allow error from old handler to disrupt sidekiq signal handling --- lib/sidekiq/cli.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index cd66459f5..8398759df 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -48,7 +48,11 @@ def run(boot_app: true) sigs.each do |sig| old_handler = Signal.trap(sig) do if old_handler.respond_to?(:call) - old_handler.call + begin + old_handler.call + rescue Exception + puts $!.inspect + end end self_write.puts(sig) end From d2ad0fe73128d686092e7baf81bf7beaa4ac2dae Mon Sep 17 00:00:00 2001 From: John Bachir Date: Mon, 13 Sep 2021 00:30:18 +0100 Subject: [PATCH 3/3] changelog --- Changes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changes.md b/Changes.md index 3aa6dbc2f..e5b66acea 100644 --- a/Changes.md +++ b/Changes.md @@ -22,6 +22,8 @@ require "sidekiq/middleware/current_attributes" Sidekiq::CurrentAttributes.persist(Myapp::Current) # Your AS:CurrentAttributes singleton ``` - Retry Redis operation if we get an `UNBLOCKED` Redis error. [#4985] +- **BREAKING CHANGE** Run existing signal-handling code, if there is any, before running sidekiq's + signal-handling code. [#4991] 6.2.2 ---------