]> cat aescling's git repositories - mastodon.git/commitdiff
Fix media redownload worker retrying on unexpected response codes (#16111)
authorEugen Rochko <eugen@zeonfederated.com>
Wed, 5 May 2021 21:46:59 +0000 (23:46 +0200)
committerGitHub <noreply@github.com>
Wed, 5 May 2021 21:46:59 +0000 (23:46 +0200)
app/workers/redownload_media_worker.rb
lib/exceptions.rb

index 0638cd0f095339668bb2e4093823364ac17e69a8..343caa32c2372d64af8080ff1a2d0405e6933c6c 100644 (file)
@@ -3,6 +3,7 @@
 class RedownloadMediaWorker
   include Sidekiq::Worker
   include ExponentialBackoff
+  include JsonLdHelper
 
   sidekiq_options queue: 'pull', retry: 3
 
@@ -15,6 +16,14 @@ class RedownloadMediaWorker
     media_attachment.download_thumbnail!
     media_attachment.save
   rescue ActiveRecord::RecordNotFound
-    true
+    # Do nothing
+  rescue Mastodon::UnexpectedResponseError => e
+    response = e.response
+
+    if response_error_unsalvageable?(response)
+      # Give up
+    else
+      raise e
+    end
   end
 end
index 7c8e778713a2b38a5c373cd09214b2c5b320f93a..eb472abaabfb67d9a853d8c38c3b77325ffdad29 100644 (file)
@@ -12,7 +12,11 @@ module Mastodon
   class RateLimitExceededError < Error; end
 
   class UnexpectedResponseError < Error
+    attr_reader :response
+
     def initialize(response = nil)
+      @response = response
+
       if response.respond_to? :uri
         super("#{response.uri} returned code #{response.code}")
       else