Fix nil error when removing status caused by race condition (#16099)
This commit is contained in:
		
							parent
							
								
									a6564d56d6
								
							
						
					
					
						commit
						f4b7c6b619
					
				@ -62,7 +62,7 @@ class StatusReachFinder
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def followers_inboxes
 | 
					  def followers_inboxes
 | 
				
			||||||
    if @status.reply? && @status.thread.account.local? && @status.distributable?
 | 
					    if @status.in_reply_to_local_account? && @status.distributable?
 | 
				
			||||||
      @status.account.followers.or(@status.thread.account.followers).inboxes
 | 
					      @status.account.followers.or(@status.thread.account.followers).inboxes
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      @status.account.followers.inboxes
 | 
					      @status.account.followers.inboxes
 | 
				
			||||||
 | 
				
			|||||||
@ -161,6 +161,10 @@ class Status < ApplicationRecord
 | 
				
			|||||||
    attributes['local'] || uri.nil?
 | 
					    attributes['local'] || uri.nil?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def in_reply_to_local_account?
 | 
				
			||||||
 | 
					    reply? && thread&.account&.local?
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def reblog?
 | 
					  def reblog?
 | 
				
			||||||
    !reblog_of_id.nil?
 | 
					    !reblog_of_id.nil?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ class ActivityPub::DistributionWorker
 | 
				
			|||||||
    # Deliver the status to all followers.
 | 
					    # Deliver the status to all followers.
 | 
				
			||||||
    # If the status is a reply to another local status, also forward it to that
 | 
					    # If the status is a reply to another local status, also forward it to that
 | 
				
			||||||
    # status' authors' followers.
 | 
					    # status' authors' followers.
 | 
				
			||||||
    @inboxes ||= if @status.reply? && @status.thread.account.local? && @status.distributable?
 | 
					    @inboxes ||= if @status.in_reply_to_local_account? && @status.distributable?
 | 
				
			||||||
                   @account.followers.or(@status.thread.account.followers).inboxes
 | 
					                   @account.followers.or(@status.thread.account.followers).inboxes
 | 
				
			||||||
                 else
 | 
					                 else
 | 
				
			||||||
                   @account.followers.inboxes
 | 
					                   @account.followers.inboxes
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user