summary refs log tree commit diff
path: root/synapse/storage/databases
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2022-08-01 11:20:05 +0100
committerGitHub <noreply@github.com>2022-08-01 11:20:05 +0100
commit23768ccb4d00ae6d4c01d30178ba223a4bbb10f2 (patch)
tree146adda4e28cb447dc4313d20adb778ec1c60bad /synapse/storage/databases
parentMerge tag 'v1.64.0rc2' into develop (diff)
downloadsynapse-23768ccb4d00ae6d4c01d30178ba223a4bbb10f2.tar.xz
Faster joins: fix rejected events becoming un-rejected during resync (#13413)
Make sure that we re-check the auth rules during state resync, otherwise
rejected events get un-rejected.
Diffstat (limited to 'synapse/storage/databases')
-rw-r--r--synapse/storage/databases/main/state.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/synapse/storage/databases/main/state.py b/synapse/storage/databases/main/state.py

index 9674c4a757..f70705a0af 100644 --- a/synapse/storage/databases/main/state.py +++ b/synapse/storage/databases/main/state.py
@@ -419,13 +419,15 @@ class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore): # anything that was rejected should have the same state as its # predecessor. if context.rejected: - assert context.state_group == context.state_group_before_event + state_group = context.state_group_before_event + else: + state_group = context.state_group self.db_pool.simple_update_txn( txn, table="event_to_state_groups", keyvalues={"event_id": event.event_id}, - updatevalues={"state_group": context.state_group}, + updatevalues={"state_group": state_group}, ) self.db_pool.simple_delete_one_txn( @@ -440,7 +442,7 @@ class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore): txn.call_after( self._get_state_group_for_event.prefill, (event.event_id,), - context.state_group, + state_group, )