diff options
author | David Robertson <davidr@element.io> | 2022-09-27 17:26:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-27 17:26:35 +0100 |
commit | f5aaa55e2702af3cac1e195bf5d703970c24ff29 (patch) | |
tree | a3f2d63246d5759c43539fa78395e06446caceab /synapse/handlers | |
parent | Support the stable dir parameter for /relations. (#13920) (diff) | |
download | synapse-f5aaa55e2702af3cac1e195bf5d703970c24ff29.tar.xz |
Add new columns tracking when we partial-joined (#13892)
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/federation.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index e1a4265a64..74580f60df 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -581,7 +581,11 @@ class FederationHandler: # Mark the room as having partial state. # The background process is responsible for unmarking this flag, # even if the join fails. - await self.store.store_partial_state_room(room_id, ret.servers_in_room) + await self.store.store_partial_state_room( + room_id=room_id, + servers=ret.servers_in_room, + device_lists_stream_id=self.store.get_device_stream_token(), + ) try: max_stream_id = ( @@ -606,6 +610,14 @@ class FederationHandler: room_id, ) raise LimitExceededError(msg=e.msg, errcode=e.errcode, retry_after_ms=0) + else: + # Record the join event id for future use (when we finish the full + # join). We have to do this after persisting the event to keep foreign + # key constraints intact. + if ret.partial_state: + await self.store.write_partial_state_rooms_join_event_id( + room_id, event.event_id + ) finally: # Always kick off the background process that asynchronously fetches # state for the room. |