|
|
|
@ -296,16 +296,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: |
|
|
|
@ -326,8 +328,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) |
|
|
|
|