diff --git a/searx/metrology/error_recorder.py b/searx/metrology/error_recorder.py index 65dbf33c..f533e4e8 100644 --- a/searx/metrology/error_recorder.py +++ b/searx/metrology/error_recorder.py @@ -51,15 +51,12 @@ def add_error_context(engine_name: str, error_context: ErrorContext) -> None: def get_trace(traces): - previous_trace = traces[-1] for trace in reversed(traces): - if trace.filename.endswith('searx/search.py'): - if previous_trace.filename.endswith('searx/poolrequests.py'): - return trace - if previous_trace.filename.endswith('requests/models.py'): - return trace - return previous_trace - previous_trace = trace + split_filename = trace.filename.split('/') + if '/'.join(split_filename[-3:-1]) == 'searx/engines': + return trace + if '/'.join(split_filename[-4:-1]) == 'searx/search/processors': + return trace return traces[-1] diff --git a/searx/search/checker/background.py b/searx/search/checker/background.py index e41bff5f..22a51b8b 100644 --- a/searx/search/checker/background.py +++ b/searx/search/checker/background.py @@ -98,7 +98,7 @@ def initialize(): signal.signal(signal.SIGUSR1, _signal_handler) # disabled by default - _set_result({'status': 'disabled'}) + _set_result({'status': 'disabled'}, include_timestamp=False) # special case when debug is activate if searx_debug and settings.get('checker', {}).get('off_when_debug', True): diff --git a/searx/search/checker/impl.py b/searx/search/checker/impl.py index 71a941f7..244536f1 100644 --- a/searx/search/checker/impl.py +++ b/searx/search/checker/impl.py @@ -4,6 +4,7 @@ import typing import types import functools import itertools +import threading from time import time from urllib.parse import urlparse @@ -377,6 +378,8 @@ class Checker: engineref_category = search_query.engineref_list[0].category params = self.processor.get_params(search_query, engineref_category) if params is not None: + with threading.RLock(): + self.processor.engine.stats['sent_search_count'] += 1 self.processor.search(search_query.query, params, result_container, time(), 5) return result_container diff --git a/searx/search/processors/abstract.py b/searx/search/processors/abstract.py index eb8d296e..3a853d49 100644 --- a/searx/search/processors/abstract.py +++ b/searx/search/processors/abstract.py @@ -1,13 +1,13 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -from abc import abstractmethod +from abc import abstractmethod, ABC from searx import logger logger = logger.getChild('searx.search.processor') -class EngineProcessor: +class EngineProcessor(ABC): def __init__(self, engine, engine_name): self.engine = engine