summary refs log tree commit diff
path: root/synapse/storage/events.py
diff options
context:
space:
mode:
authorAndrew Morgan <andrew@amorgan.xyz>2019-01-24 14:51:35 +0000
committerAndrew Morgan <andrew@amorgan.xyz>2019-01-24 14:51:35 +0000
commitacaca1b4e97b062ab0f926794435b901b7a3fa4e (patch)
tree79c9381f3e82d0c4ded96485988adb6d9016a910 /synapse/storage/events.py
parentFix missing synapse metrics import (diff)
parentisort (diff)
downloadsynapse-acaca1b4e97b062ab0f926794435b901b7a3fa4e.tar.xz
Merge branch 'anoa/room_dir_quick_fix' into matrix-org-hotfixes
Diffstat (limited to 'synapse/storage/events.py')
-rw-r--r--synapse/storage/events.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/synapse/storage/events.py b/synapse/storage/events.py

index 2047110b1d..79e0276de6 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py
@@ -739,7 +739,18 @@ class EventsStore(StateGroupWorkerStore, EventFederationStore, EventsWorkerStore } events_map = {ev.event_id: ev for ev, _ in events_context} - room_version = yield self.get_room_version(room_id) + + # We need to get the room version, which is in the create event. + # Normally that'd be in the database, but its also possible that we're + # currently trying to persist it. + room_version = None + for ev, _ in events_context: + if ev.type == EventTypes.Create and ev.state_key == "": + room_version = ev.content.get("room_version", "1") + break + + if not room_version: + room_version = yield self.get_room_version(room_id) logger.debug("calling resolve_state_groups from preserve_events") res = yield self._state_resolution_handler.resolve_state_groups(