20300: Bypass query cache when re-fetching record for race check.
authorTom Clegg <tom@curii.com>
Mon, 25 Sep 2023 14:43:32 +0000 (10:43 -0400)
committerTom Clegg <tom@curii.com>
Fri, 29 Sep 2023 14:14:14 +0000 (10:14 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

services/api/app/models/api_client_authorization.rb

index 756d835effaa2b35db7c0440e4328f2b748e823e..ef73d79c176d28961e597ef6df28536816304aa2 100644 (file)
@@ -389,7 +389,9 @@ class ApiClientAuthorization < ArvadosModel
         rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique
           Rails.logger.debug("remote user #{remote_user['uuid']} already exists, retrying...")
           # Some other request won the race: retry fetching the user record.
-          user = User.find_by_uuid(remote_user['uuid'])
+          user = User.uncached do
+            User.find_by_uuid(remote_user['uuid'])
+          end
           if !user
             Rails.logger.warn("cannot find or create remote user #{remote_user['uuid']}")
             return nil