From 41f6359d06fd6fb93ddfde59cba17da57565f587 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Thu, 16 Sep 2021 18:05:31 +0200 Subject: [PATCH] [fix] error recorder: avoid RuntimeError on some rare occasion httpx.RequestError (subclass of httpx.HTTPError) has a property request. This property raises a RuntimeError if the attributes _request is None. To avoid a cascade of errors, this commit reads directly the _request attribute. --- searx/metrics/error_recorder.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/searx/metrics/error_recorder.py b/searx/metrics/error_recorder.py index 6963cda2f..37594e5e8 100644 --- a/searx/metrics/error_recorder.py +++ b/searx/metrics/error_recorder.py @@ -74,9 +74,11 @@ def get_request_exception_messages(exc: HTTPError)\ status_code = None reason = None hostname = None - if hasattr(exc, 'request') and exc.request is not None: + if hasattr(exc, '_request') and exc._request is not None: + # exc.request is property that raise an RuntimeException + # if exc._request is not defined. url = exc.request.url - if url is None and hasattr(exc, 'response') and exc.respones is not None: + if url is None and hasattr(exc, 'response') and exc.response is not None: url = exc.response.url if url is not None: hostname = url.host