Fix concurrent unfollowing decrementing follower count more than once (#18527)
This commit is contained in:
		
							parent
							
								
									8a9acbe604
								
							
						
					
					
						commit
						52f4e834f2
					
				@ -2,6 +2,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class UnfollowService < BaseService
 | 
					class UnfollowService < BaseService
 | 
				
			||||||
  include Payloadable
 | 
					  include Payloadable
 | 
				
			||||||
 | 
					  include Redisable
 | 
				
			||||||
 | 
					  include Lockable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Unfollow and notify the remote user
 | 
					  # Unfollow and notify the remote user
 | 
				
			||||||
  # @param [Account] source_account Where to unfollow from
 | 
					  # @param [Account] source_account Where to unfollow from
 | 
				
			||||||
@ -13,7 +15,9 @@ class UnfollowService < BaseService
 | 
				
			|||||||
    @target_account = target_account
 | 
					    @target_account = target_account
 | 
				
			||||||
    @options        = options
 | 
					    @options        = options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    unfollow! || undo_follow_request!
 | 
					    with_lock("relationship:#{[source_account.id, target_account.id].sort.join(':')}") do
 | 
				
			||||||
 | 
					      unfollow! || undo_follow_request!
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user