diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2022-08-01 11:20:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-01 11:20:05 +0100 |
commit | 23768ccb4d00ae6d4c01d30178ba223a4bbb10f2 (patch) | |
tree | 146adda4e28cb447dc4313d20adb778ec1c60bad /synapse/storage/databases | |
parent | Merge tag 'v1.64.0rc2' into develop (diff) | |
download | synapse-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.py | 8 |
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, ) |