From c64a006f1d1b96807fbc847da079ad9e04eca749 Mon Sep 17 00:00:00 2001 From: Henrik Hodne Date: Sat, 26 Oct 2013 08:33:57 -0500 Subject: [PATCH] Handle race condition with creating users more nicely --- lib/travis/api/app/endpoint/authorization.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/travis/api/app/endpoint/authorization.rb b/lib/travis/api/app/endpoint/authorization.rb index 85c64079..80a05363 100644 --- a/lib/travis/api/app/endpoint/authorization.rb +++ b/lib/travis/api/app/endpoint/authorization.rb @@ -210,6 +210,7 @@ class Travis::Api::App end def fetch + retried ||= false user = ::User.find_by_github_id(data['id']) info = drop_token ? self.info : self.info(github_oauth_token: token) @@ -225,6 +226,11 @@ class Travis::Api::App end user + rescue ActiveRecord::RecordNotUnique + unless retried + retried = true + retry + end end end