From 6b6c32882bed557ddf6c7d8665421121955f36ba Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 21 Jan 2024 00:06:32 -0500 Subject: [PATCH] fix potential race condition when fetching remote identities --- takahe/utils.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/takahe/utils.py b/takahe/utils.py index f52c0d3c..144aa14e 100644 --- a/takahe/utils.py +++ b/takahe/utils.py @@ -188,15 +188,17 @@ class Takahe: raise ValueError(f"local takahe identity {identity} missing APIdentity") if not identity.domain_id: raise ValueError(f"remote takahe identity {identity} missing domain") - apid = APIdentity.objects.create( + apid = APIdentity.objects.get_or_create( id=identity.pk, - user=None, - local=False, - username=identity.username, - domain_name=identity.domain_id, - deleted=identity.deleted, - anonymous_viewable=False, - ) + defaults={ + "user": None, + "local": False, + "username": identity.username, + "domain_name": identity.domain_id, + "deleted": identity.deleted, + "anonymous_viewable": False, + }, + )[0] return apid @staticmethod