diff options
author | Erik Johnston <erik@matrix.org> | 2015-03-18 11:19:47 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-03-18 11:19:47 +0000 |
commit | bb246091585dc648177f70a022a185784b3ff862 (patch) | |
tree | 25a61d7c25bce51bd2b7a697854b6a2209c8faf6 /synapse | |
parent | @cached() annotate get_user_by_token() - achieves a minor DB performance impr... (diff) | |
download | synapse-bb246091585dc648177f70a022a185784b3ff862.tar.xz |
Clean out event_forward_extremities table when the server rejoins the room
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/federation.py | 2 | ||||
-rw-r--r-- | synapse/storage/event_federation.py | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 65cfacba2e..15ba417e06 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -290,6 +290,8 @@ class FederationHandler(BaseHandler): """ logger.debug("Joining %s to %s", joinee, room_id) + yield self.store.clean_room_for_join(room_id) + origin, pdu = yield self.replication_layer.make_join( target_hosts, room_id, diff --git a/synapse/storage/event_federation.py b/synapse/storage/event_federation.py index 2deda8ac50..032334bfd6 100644 --- a/synapse/storage/event_federation.py +++ b/synapse/storage/event_federation.py @@ -429,3 +429,15 @@ class EventFederationStore(SQLBaseStore): ) return events[:limit] + + def clean_room_for_join(self, room_id): + return self.runInteraction( + "clean_room_for_join", + self._clean_room_for_join_txn, + room_id, + ) + + def _clean_room_for_join_txn(self, txn, room_id): + query = "DELETE FROM event_forward_extremities WHERE room_id = ?" + + txn.execute(query, (room_id,)) |