Fix 'rejected_events_metadata' background update (#9537)

Turns out matrix.org has an event that has duplicate auth events (which really isn't supposed to happen, but here we are). This caused the background update to fail due to `UniqueViolation`.
This commit is contained in:
Erik Johnston 2021-03-03 16:04:24 +00:00 committed by GitHub
parent 922788c604
commit a4fa044c00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 1 deletions

1
changelog.d/9537.bugfix Normal file
View File

@ -0,0 +1 @@
Fix rare edge case that caused a background update to fail if the server had rejected an event that had duplicate auth events.

View File

@ -696,7 +696,9 @@ class EventsBackgroundUpdatesStore(SQLBaseStore):
) )
if not has_event_auth: if not has_event_auth:
for auth_id in event.auth_event_ids(): # Old, dodgy, events may have duplicate auth events, which we
# need to deduplicate as we have a unique constraint.
for auth_id in set(event.auth_event_ids()):
auth_events.append( auth_events.append(
{ {
"room_id": event.room_id, "room_id": event.room_id,