mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-27 20:50:28 +01:00
Fix and improve batch attachment deletion handling when using OpenStack Swift (#32637)
This commit is contained in:
parent
02addb3b96
commit
a9477a992d
1 changed files with 14 additions and 2 deletions
|
@ -76,10 +76,22 @@ class AttachmentBatch
|
|||
when :fog
|
||||
logger.debug { "Deleting #{attachment.path(style)}" }
|
||||
|
||||
retries = 0
|
||||
begin
|
||||
attachment.send(:directory).files.new(key: attachment.path(style)).destroy
|
||||
rescue Fog::Storage::OpenStack::NotFound
|
||||
# Ignore failure to delete a file that has already been deleted
|
||||
rescue Fog::OpenStack::Storage::NotFound
|
||||
logger.debug "Will ignore because file is not found #{attachment.path(style)}"
|
||||
rescue => e
|
||||
retries += 1
|
||||
|
||||
if retries < MAX_RETRY
|
||||
logger.debug "Retry #{retries}/#{MAX_RETRY} after #{e.message}"
|
||||
sleep 2**retries
|
||||
retry
|
||||
else
|
||||
logger.error "Batch deletion from fog failed after #{e.message}"
|
||||
raise e
|
||||
end
|
||||
end
|
||||
when :azure
|
||||
logger.debug { "Deleting #{attachment.path(style)}" }
|
||||
|
|
Loading…
Reference in a new issue