From 60b7c952d58ef3c3760af8b2db9cc713d8d9d3e5 Mon Sep 17 00:00:00 2001 From: Eugen Kuksa Date: Wed, 8 Apr 2015 13:08:29 +0200 Subject: [PATCH] Add test: infinite recursion/circular error causes --- test/test_retry.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/test_retry.rb b/test/test_retry.rb index 8320855e3..7b8a3c428 100644 --- a/test/test_retry.rb +++ b/test/test_retry.rb @@ -328,6 +328,30 @@ def @redis.multi; yield self; end File.read(@tmp_log_path), 'Log entry missing for sidekiq_retry_in') end end + + describe 'handles errors with circular causes' do + before do + @error = nil + begin + begin + raise ::StandardError, 'Error 1' + rescue ::StandardError => e1 + begin + raise ::StandardError, 'Error 2' + rescue ::StandardError => e2 + raise e1 + end + end + rescue ::StandardError => e + @error = e + end + end + + it "does not recurse infinitely checking if it's a shudtown" do + assert(!Sidekiq::Middleware::Server::RetryJobs.new.send( + :exception_caused_by_shutdown?, @error)) + end + end end end