From d6eb498ee4dd04549ce6070cc631eeff1f842764 Mon Sep 17 00:00:00 2001 From: Colter Downing Date: Mon, 27 Oct 2025 12:01:55 -0700 Subject: [PATCH] catch the case where all benchmarks fail (sets error) --- lib/backend.py | 3 +++ lib/data_types.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/backend.py b/lib/backend.py index 4a99ac6..e55ce59 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -350,6 +350,9 @@ class Backend: total_workload = sum(br.workload for br in benchmark_requests if br.is_successful) time_elapsed = time.time() - start successful_responses = sum([1 for br in benchmark_requests if br.is_successful]) + if successful_responses == 0: + self.backend_errored("No successful responses from benchmark") + log.debug(f"benchmark failed: {successful_responses}/{concurrent_requests} successful responses") throughput = total_workload / time_elapsed sum_throughput += throughput diff --git a/lib/data_types.py b/lib/data_types.py index 389ed18..af1bbd5 100644 --- a/lib/data_types.py +++ b/lib/data_types.py @@ -257,7 +257,7 @@ class ModelMetrics: def wait_time(self) -> float: if (len(self.requests_working) == 0): return 0.0 - return sum([request.workload for request in self.requests_working.values()]) / self.max_throughput + return sum([request.workload for request in self.requests_working.values()]) / max(self.max_throughput, 0.00001) @property def cur_load(self) -> float: