summaryrefslogtreecommitdiff
path: root/searx/metrics
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-09-16 18:05:31 +0200
committerAlexandre Flament <alex@al-f.net>2021-09-17 10:06:24 +0200
commit41f6359d06fd6fb93ddfde59cba17da57565f587 (patch)
tree2256a99c8a078345a5bd7c63c290f4adae93d362 /searx/metrics
parentb10403d3a1c1da6a6c5bbb49bc891f26ff45f1f1 (diff)
downloadsearxng-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.
Diffstat (limited to 'searx/metrics')
-rw-r--r--searx/metrics/error_recorder.py6
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