summary refs log tree commit diff
path: root/synapse/util
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2017-02-01 15:56:16 +0000
committerGitHub <noreply@github.com>2017-02-01 15:56:16 +0000
commit96355d2f2f343085a51217e1544694e50a274a4b (patch)
tree85993103acc1b45214bacf3d47c6b67af5dd09e5 /synapse/util
parentWake sync up for device changes (diff)
parentCorrectly raise exceptions for ratelimitng. Ratelimit on 401 (diff)
downloadsynapse-96355d2f2f343085a51217e1544694e50a274a4b.tar.xz
Merge pull request #1871 from matrix-org/erikj/ratelimit_401
Correctly raise exceptions for ratelimitng. Ratelimit on 401
Diffstat (limited to 'synapse/util')
-rw-r--r--synapse/util/retryutils.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/synapse/util/retryutils.py b/synapse/util/retryutils.py
index b94ae369cf..153ef001ad 100644
--- a/synapse/util/retryutils.py
+++ b/synapse/util/retryutils.py
@@ -129,11 +129,13 @@ class RetryDestinationLimiter(object):
             # APIs may expect to never received e.g. a 404. It's important to
             # handle 404 as some remote servers will return a 404 when the HS
             # has been decommissioned.
+            # If we get a 401, then we should probably back off since they
+            # won't accept our requests for at least a while.
+            # 429 is us being aggresively rate limited, so lets rate limit
+            # ourselves.
             if exc_val.code == 404 and self.backoff_on_404:
                 valid_err_code = False
-            elif exc_val.code == 429:
-                # 429 is us being aggresively rate limited, so lets rate limit
-                # ourselves.
+            elif exc_val.code in (401, 429):
                 valid_err_code = False
             elif exc_val.code < 500:
                 valid_err_code = True