diff options
author | Alexandre Flament <alex@al-f.net> | 2021-09-16 18:05:31 +0200 |
---|---|---|
committer | Alexandre Flament <alex@al-f.net> | 2021-09-17 10:06:24 +0200 |
commit | 41f6359d06fd6fb93ddfde59cba17da57565f587 (patch) | |
tree | 2256a99c8a078345a5bd7c63c290f4adae93d362 | |
parent | b10403d3a1c1da6a6c5bbb49bc891f26ff45f1f1 (diff) | |
download | searxng-41f6359d06fd6fb93ddfde59cba17da57565f587.tar.gz searxng-41f6359d06fd6fb93ddfde59cba17da57565f587.zip |
[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.
-rw-r--r-- | searx/metrics/error_recorder.py | 6 |
1 files 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 |