Fix error within error when limiting backtrace to 3 lines (#13120)
Fix #13086, close #13113
This commit is contained in:
		
							parent
							
								
									e09e225e5c
								
							
						
					
					
						commit
						e9ecbca70d
					
				@ -73,8 +73,6 @@ class Request
 | 
			
		||||
      response.body_with_limit if http_client.persistent?
 | 
			
		||||
 | 
			
		||||
      yield response if block_given?
 | 
			
		||||
    rescue => e
 | 
			
		||||
      raise e.class, e.message, e.backtrace[0]
 | 
			
		||||
    ensure
 | 
			
		||||
      http_client.close unless http_client.persistent?
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -52,13 +52,9 @@ class ActivityPub::DeliveryWorker
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
    light.with_threshold(STOPLIGHT_FAILURE_THRESHOLD)
 | 
			
		||||
         .with_cool_off_time(STOPLIGHT_COOLDOWN)
 | 
			
		||||
         .run
 | 
			
		||||
    rescue Stoplight::Error::RedLight => e
 | 
			
		||||
      raise e.class, e.message, e.backtrace.first(3)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def failure_tracker
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user