From e9ecbca70d28c775a9eeda7670e06443a1037d5b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 10 May 2020 10:30:27 +0200 Subject: Fix error within error when limiting backtrace to 3 lines (#13120) Fix #13086, close #13113 --- app/lib/sidekiq_error_handler.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'app/lib/sidekiq_error_handler.rb') diff --git a/app/lib/sidekiq_error_handler.rb b/app/lib/sidekiq_error_handler.rb index 8eb6b942d..b07817d45 100644 --- a/app/lib/sidekiq_error_handler.rb +++ b/app/lib/sidekiq_error_handler.rb @@ -1,13 +1,24 @@ # frozen_string_literal: true class SidekiqErrorHandler + BACKTRACE_LIMIT = 3 + def call(*) yield rescue Mastodon::HostValidationError # Do not retry + rescue => e + limit_backtrace_and_raise(e) ensure socket = Thread.current[:statsd_socket] socket&.close Thread.current[:statsd_socket] = nil end + + private + + def limit_backtrace_and_raise(e) + e.set_backtrace(e.backtrace.first(BACKTRACE_LIMIT)) + raise e + end end -- cgit