about summary refs log tree commit diff
path: root/app/lib/sidekiq_error_handler.rb
diff options
context:
space:
mode:
authorStarfall <admin@plural.cafe>2020-05-15 18:30:58 -0500
committerStarfall <admin@plural.cafe>2020-05-15 18:30:58 -0500
commit3f6370500cd8bf04fab9c9d8f3099271126a3097 (patch)
tree7215e9562c06435f9e6464fee2aa0185dd108a34 /app/lib/sidekiq_error_handler.rb
parentca3af6c5b00be851e2ced9112429cfc1baa79529 (diff)
parentb7e178d2e4102bdaa1ea41dfd8ed50093cf3f60a (diff)
Update to Mastodon 3.1.4 / Merge branch 'glitch'
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