about summary refs log tree commit diff
path: root/app/lib/sidekiq_error_handler.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-05-13 23:46:09 +0200
committerGitHub <noreply@github.com>2020-05-13 23:46:09 +0200
commite1d282023432ff4a88cb795f3a9889704314e448 (patch)
tree89f9525142d0bf876a4fb6e0117163c0a76bb78a /app/lib/sidekiq_error_handler.rb
parentc6ff4c634caf718adf7280e04909c091d15add1d (diff)
parentd147dd7588502f22ac825780bb1d6e54eb3613e6 (diff)
Merge pull request #1327 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/lib/sidekiq_error_handler.rb')
-rw-r--r--app/lib/sidekiq_error_handler.rb11
1 files changed, 11 insertions, 0 deletions
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