From 40c4cfbfb161a1e56a60a75445ebca0854f53a92 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Mon, 28 Sep 2020 14:25:55 +0100 Subject: Correctly retry replication HTTP requests on timeout --- synapse/replication/http/_base.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'synapse/replication/http/_base.py') diff --git a/synapse/replication/http/_base.py b/synapse/replication/http/_base.py index b448da6710..3377bbd67f 100644 --- a/synapse/replication/http/_base.py +++ b/synapse/replication/http/_base.py @@ -12,7 +12,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - import abc import logging import re @@ -26,6 +25,7 @@ from synapse.api.errors import ( RequestSendFailed, SynapseError, ) +from synapse.http import RequestTimedOutError from synapse.logging.opentracing import inject_active_span_byte_dict, trace from synapse.util.caches.response_cache import ResponseCache from synapse.util.stringutils import random_string @@ -196,6 +196,9 @@ class ReplicationEndpoint(metaclass=abc.ABCMeta): except CodeMessageException as e: if e.code != 504 or not cls.RETRY_ON_TIMEOUT: raise + except RequestTimedOutError: + if not cls.RETRY_ON_TIMEOUT: + raise logger.warning("%s request timed out", cls.NAME) -- cgit 1.5.1