Skip to content

Commit 468c164

Browse files
ClearlyClairehiyuki2578
authored andcommitted
Fix possible race condition when processing statuses (mastodon#10815)
1 parent 56e87d0 commit 468c164

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

app/lib/activitypub/activity/create.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,11 @@ def fetch_replies(status)
267267
def conversation_from_uri(uri)
268268
return nil if uri.nil?
269269
return Conversation.find_by(id: OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')) if OStatus::TagManager.instance.local_id?(uri)
270-
Conversation.find_by(uri: uri) || Conversation.create(uri: uri)
270+
begin
271+
Conversation.find_or_create_by!(uri: uri)
272+
rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotUnique
273+
retry
274+
end
271275
end
272276

273277
def visibility_from_audience

0 commit comments

Comments
 (0)