diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2019-01-30 11:47:24 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-30 11:47:24 +0000 |
commit | a79034aedf90d5c682da5c99dcdd609432893c4f (patch) | |
tree | 2350a8bdfa75e8889fb01f49644ac0dd30e21814 /synapse/http | |
parent | Follow redirects on .well-known (#4520) (diff) | |
parent | newsfile (diff) | |
download | synapse-a79034aedf90d5c682da5c99dcdd609432893c4f.tar.xz |
Merge pull request #4521 from matrix-org/rav/fed_routing/cleanups
Tiny .well-known fixes
Diffstat (limited to 'synapse/http')
-rw-r--r-- | synapse/http/federation/matrix_federation_agent.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/synapse/http/federation/matrix_federation_agent.py b/synapse/http/federation/matrix_federation_agent.py index eeb3665f7d..26649e70be 100644 --- a/synapse/http/federation/matrix_federation_agent.py +++ b/synapse/http/federation/matrix_federation_agent.py @@ -298,16 +298,18 @@ class MatrixFederationAgent(object): response = yield make_deferred_yieldable( self._well_known_agent.request(b"GET", uri), ) + body = yield make_deferred_yieldable(readBody(response)) + if response.code != 200: + raise Exception("Non-200 response %s" % (response.code, )) except Exception as e: - logger.info("Connection error fetching %s: %s", uri_str, e) - self._well_known_cache.set(server_name, None, WELL_KNOWN_INVALID_CACHE_PERIOD) - defer.returnValue(None) + logger.info("Error fetching %s: %s", uri_str, e) - body = yield make_deferred_yieldable(readBody(response)) + # add some randomness to the TTL to avoid a stampeding herd every hour + # after startup + cache_period = WELL_KNOWN_INVALID_CACHE_PERIOD + cache_period += random.uniform(0, WELL_KNOWN_DEFAULT_CACHE_PERIOD_JITTER) - if response.code != 200: - logger.info("Error response %i from %s", response.code, uri_str) - self._well_known_cache.set(server_name, None, WELL_KNOWN_INVALID_CACHE_PERIOD) + self._well_known_cache.set(server_name, None, cache_period) defer.returnValue(None) try: @@ -328,8 +330,8 @@ class MatrixFederationAgent(object): ) if cache_period is None: cache_period = WELL_KNOWN_DEFAULT_CACHE_PERIOD - # add some randomness to the TTL to avoid a stampeding herd every hour after - # startup + # add some randomness to the TTL to avoid a stampeding herd every 24 hours + # after startup cache_period += random.uniform(0, WELL_KNOWN_DEFAULT_CACHE_PERIOD_JITTER) else: cache_period = min(cache_period, WELL_KNOWN_MAX_CACHE_PERIOD) |