diff options
author | Erik Johnston <erik@matrix.org> | 2015-09-15 16:57:25 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-09-15 16:57:25 +0100 |
commit | 2048388cfd585e68bca43831a4b16d1eb282b1d2 (patch) | |
tree | 6cec292e601100e41089135fca53685bb6e469b0 | |
parent | Merge pull request #272 from matrix-org/daniel/insecureclient (diff) | |
parent | "Comments" (diff) | |
download | synapse-2048388cfd585e68bca43831a4b16d1eb282b1d2.tar.xz |
Merge pull request #281 from matrix-org/erikj/update_extremeties
When updating a stored event from outlier to non-outlier, remember to update the extremeties
-rw-r--r-- | synapse/storage/event_federation.py | 9 | ||||
-rw-r--r-- | synapse/storage/events.py | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/synapse/storage/event_federation.py b/synapse/storage/event_federation.py index 989ad340b0..c1cabbaa60 100644 --- a/synapse/storage/event_federation.py +++ b/synapse/storage/event_federation.py @@ -303,6 +303,15 @@ class EventFederationStore(SQLBaseStore): ], ) + self._update_extremeties(txn, events) + + def _update_extremeties(self, txn, events): + """Updates the event_*_extremities tables based on the new/updated + events being persisted. + + This is called for new events *and* for events that were outliers, but + are are now being persisted as non-outliers. + """ events_by_room = {} for ev in events: events_by_room.setdefault(ev.room_id, []).append(ev) diff --git a/synapse/storage/events.py b/synapse/storage/events.py index fba837f461..0a477e3122 100644 --- a/synapse/storage/events.py +++ b/synapse/storage/events.py @@ -281,6 +281,8 @@ class EventsStore(SQLBaseStore): (False, event.event_id,) ) + self._update_extremeties(txn, [event]) + events_and_contexts = filter( lambda ec: ec[0] not in to_remove, events_and_contexts |