From 72a6d2d6e114f5082940dc3655b678d2d0524732 Mon Sep 17 00:00:00 2001 From: gmega Date: Sun, 12 Jan 2025 07:16:54 -0300 Subject: [PATCH] fix: tracker raeadiness check exception leak, decrease Vector flush interval --- benchmarks/core/experiments/experiments.py | 10 +++++++++- benchmarks/deluge/tracker.py | 3 ++- benchmarks/logging/sources.py | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/benchmarks/core/experiments/experiments.py b/benchmarks/core/experiments/experiments.py index 69555bc..8665459 100644 --- a/benchmarks/core/experiments/experiments.py +++ b/benchmarks/core/experiments/experiments.py @@ -123,9 +123,12 @@ class BoundExperiment(Experiment, Generic[TExperiment]): class IteratedExperiment(Experiment, Generic[TExperiment]): """An :class:`IteratedExperiment` will run a sequence of :class:`Experiment`s.""" - def __init__(self, experiments: Iterable[TExperiment]): + def __init__( + self, experiments: Iterable[TExperiment], raise_when_failures: bool = True + ): self.successful_runs = 0 self.failed_runs = 0 + self.raise_when_failures = raise_when_failures self.experiments = experiments def run(self): @@ -136,3 +139,8 @@ class IteratedExperiment(Experiment, Generic[TExperiment]): except Exception as ex: self.failed_runs += 1 logger.error(ex) + + if self.failed_runs > 0 and self.raise_when_failures: + raise RuntimeError( + "One or more experiments with an iterated experiment have failed." + ) diff --git a/benchmarks/deluge/tracker.py b/benchmarks/deluge/tracker.py index 7f67ef7..3bc6555 100644 --- a/benchmarks/deluge/tracker.py +++ b/benchmarks/deluge/tracker.py @@ -1,6 +1,7 @@ import socket import requests +from urllib3.exceptions import RequestError from urllib3.util import Url from benchmarks.core.experiments.experiments import ExperimentComponent @@ -14,7 +15,7 @@ class Tracker(ExperimentComponent): try: requests.get(str(self.announce_url)) return True - except (ConnectionError, socket.gaierror): + except (ConnectionError, RequestError, socket.gaierror): return False def __str__(self) -> str: diff --git a/benchmarks/logging/sources.py b/benchmarks/logging/sources.py index 3274d7f..8b6fdac 100644 --- a/benchmarks/logging/sources.py +++ b/benchmarks/logging/sources.py @@ -193,3 +193,5 @@ def split_logs_in_source( parsed = log_parser.parse_single(raw_line) if parsed: splitter.split_single(parsed) + + logger.info("Finished processing logs.")