Raise Mastodon::RaceConditionError if Redis lock failed (#7511)
An explicit error allows user agents to know the error and Sidekiq to retry.
This commit is contained in:
		
					parent
					
						
							
								65d6b253fb
							
						
					
				
			
			
				commit
				
					
						55fd55714a
					
				
			
		
					 6 changed files with 12 additions and 0 deletions
				
			
		|  | @ -8,6 +8,8 @@ class MediaProxyController < ApplicationController | |||
|       if lock.acquired? | ||||
|         @media_attachment = MediaAttachment.remote.find(params[:id]) | ||||
|         redownload! if @media_attachment.needs_redownload? && !reject_media? | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,6 +11,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity | |||
|       if lock.acquired? | ||||
|         @status = find_existing_status | ||||
|         process_status if @status.nil? | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,6 +15,8 @@ class OStatus::Activity::Creation < OStatus::Activity::Base | |||
|         @status = find_status(id) | ||||
|         return [@status, false] unless @status.nil? | ||||
|         @status = process_status | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,6 +23,8 @@ class ActivityPub::ProcessAccountService < BaseService | |||
|         create_account if @account.nil? | ||||
|         update_account | ||||
|         process_tags | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,6 +23,8 @@ class FetchLinkCardService < BaseService | |||
|       if lock.acquired? | ||||
|         @card = PreviewCard.find_by(url: @url) | ||||
|         process_url if @card.nil? || @card.updated_at <= 2.weeks.ago | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
|  | @ -49,6 +49,8 @@ class ResolveAccountService < BaseService | |||
|         else | ||||
|           handle_ostatus | ||||
|         end | ||||
|       else | ||||
|         raise Mastodon::RaceConditionError | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue