diff options
author | Erik Johnston <erikj@jki.re> | 2016-08-16 12:55:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-16 12:55:42 +0100 |
commit | 7c6f4f942774fa6baa7aad91df99f3afb200b0ae (patch) | |
tree | 640e874487f0ee49b4dbfe0d27888ff17da5d07d | |
parent | Merge pull request #1010 from matrix-org/erikj/refactor_deletions (diff) | |
parent | Limit number of extremeties in backfill request (diff) | |
download | synapse-7c6f4f942774fa6baa7aad91df99f3afb200b0ae.tar.xz |
Merge pull request #1012 from matrix-org/erikj/limit_backfill_uri
Limit number of extremeties in backfill request
-rw-r--r-- | synapse/handlers/federation.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index ff6bb475b5..328f8f4842 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -274,7 +274,7 @@ class FederationHandler(BaseHandler): @log_function @defer.inlineCallbacks - def backfill(self, dest, room_id, limit, extremities=[]): + def backfill(self, dest, room_id, limit, extremities): """ Trigger a backfill request to `dest` for the given `room_id` This will attempt to get more events from the remote. This may return @@ -284,9 +284,6 @@ class FederationHandler(BaseHandler): if dest == self.server_name: raise SynapseError(400, "Can't backfill from self.") - if not extremities: - extremities = yield self.store.get_oldest_events_in_room(room_id) - events = yield self.replication_layer.backfill( dest, room_id, @@ -455,6 +452,10 @@ class FederationHandler(BaseHandler): ) max_depth = sorted_extremeties_tuple[0][1] + # We don't want to specify too many extremities as it causes the backfill + # request URI to be too long. + extremities = dict(sorted_extremeties_tuple[:5]) + if current_depth > max_depth: logger.debug( "Not backfilling as we don't need to. %d < %d", |