diff options
author | Erik Johnston <erik@matrix.org> | 2018-10-16 14:01:53 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2018-10-16 16:28:42 +0100 |
commit | 4a28d3d36fa21446e60a2a5142626a385e1f27af (patch) | |
tree | adb6380108b420689dc24c86bbdf4cc4c0e53775 | |
parent | Fix up use of resolve_events_with_factory (diff) | |
download | synapse-4a28d3d36fa21446e60a2a5142626a385e1f27af.tar.xz |
Update event_auth table for rejected events
-rw-r--r-- | synapse/storage/events.py | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/synapse/storage/events.py b/synapse/storage/events.py index fc88edcb39..c780f55277 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py @@ -851,6 +851,27 @@ class EventsStore(EventFederationStore, EventsWorkerStore, BackgroundUpdateStore # Insert into event_to_state_groups. self._store_event_state_mappings_txn(txn, events_and_contexts) + # We want to store event_auth mappings for rejected events, as they're + # used in state res v2. + # This is only necessary if the rejected event appears in an accepted + # event's auth chain, but its easier for now just to store them (and + # it doesn't take much storage compared to storing the entire event + # anyway). + self._simple_insert_many_txn( + txn, + table="event_auth", + values=[ + { + "event_id": event.event_id, + "room_id": event.room_id, + "auth_id": auth_id, + } + for event, _ in events_and_contexts + for auth_id, _ in event.auth_events + if event.is_state() + ], + ) + # _store_rejected_events_txn filters out any events which were # rejected, and returns the filtered list. events_and_contexts = self._store_rejected_events_txn( @@ -1326,21 +1347,6 @@ class EventsStore(EventFederationStore, EventsWorkerStore, BackgroundUpdateStore txn, event.room_id, event.redacts ) - self._simple_insert_many_txn( - txn, - table="event_auth", - values=[ - { - "event_id": event.event_id, - "room_id": event.room_id, - "auth_id": auth_id, - } - for event, _ in events_and_contexts - for auth_id, _ in event.auth_events - if event.is_state() - ], - ) - # Update the event_forward_extremities, event_backward_extremities and # event_edges tables. self._handle_mult_prev_events( |