Fix event context for outliers in important MSC2716 spot (#10938)

Fix event context for outlier causing failures in all of the MSC2716
Complement tests.

The `EventContext.for_outlier` refactor happened in
https://github.com/matrix-org/synapse/pull/10883
and this spot was left out.
pull/10968/head
Eric Eastwood 2021-09-28 22:00:04 -05:00 committed by Olivier Wilkinson (reivilibre)
parent a03ed5e6ae
commit c4bf48ee6f
2 changed files with 5 additions and 9 deletions

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

@ -0,0 +1 @@
Fix bug introduced in Synapse 1.44 which caused the experimental [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716) `/batch_send` endpoint to return a 500 error.

View File

@ -952,18 +952,13 @@ class EventCreationHandler:
depth=depth,
)
old_state = None
# Pass on the outlier property from the builder to the event
# after it is created
if builder.internal_metadata.outlier:
event.internal_metadata.outlier = builder.internal_metadata.outlier
# Calculate the state for outliers that pass in their own `auth_event_ids`
if auth_event_ids:
old_state = await self.store.get_events_as_list(auth_event_ids)
context = await self.state.compute_event_context(event, old_state=old_state)
event.internal_metadata.outlier = True
context = EventContext.for_outlier()
else:
context = await self.state.compute_event_context(event)
if requester:
context.app_service = requester.app_service