From f741673638e11e53cd65c70dc5b266735357ad14 Mon Sep 17 00:00:00 2001
From: ThibG <thib@sitedethib.com>
Date: Thu, 8 Jun 2017 13:40:11 +0200
Subject: [PATCH] Fixes #3605 by returning account from database in case of
 race condition (#3606)

---
 app/services/follow_remote_account_service.rb | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/app/services/follow_remote_account_service.rb b/app/services/follow_remote_account_service.rb
index 1e8a53c2d4..8558e6d022 100644
--- a/app/services/follow_remote_account_service.rb
+++ b/app/services/follow_remote_account_service.rb
@@ -61,8 +61,13 @@ class FollowRemoteAccountService < BaseService
     account.uri     = get_account_uri(xml)
     account.hub_url = hubs.first.attribute('href').value
 
-    account.save!
-    get_profile(body, account)
+    begin
+      account.save!
+      get_profile(body, account)
+    rescue ActiveRecord::RecordNotUnique
+      # The account has been added by another worker!
+      return Account.find_remote(confirmed_username, confirmed_domain)
+    end
 
     account
   end
-- 
GitLab