From e8d479da6916ee525bb9fa770c76f4da3ff8f75c Mon Sep 17 00:00:00 2001 From: gmega Date: Tue, 28 Jan 2025 08:30:11 -0300 Subject: [PATCH] fix: add retry to download progress queries --- benchmarks/deluge/deluge_node.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/benchmarks/deluge/deluge_node.py b/benchmarks/deluge/deluge_node.py index a04a71c..64ed9f4 100644 --- a/benchmarks/deluge/deluge_node.py +++ b/benchmarks/deluge/deluge_node.py @@ -206,9 +206,12 @@ class ResilientCallWrapper: class DelugeDownloadHandle(DownloadHandle): - def __init__(self, torrent: Torrent, node: DelugeNode) -> None: + def __init__( + self, torrent: Torrent, node: DelugeNode, missing_retries: int = 10 + ) -> None: self._node = node self.torrent = torrent + self.missing_retries = missing_retries @property def node(self) -> DelugeNode: @@ -224,6 +227,18 @@ class DelugeDownloadHandle(DownloadHandle): f"Client has multiple torrents matching name {name}. Returning the first one." ) + if len(response) == 0: + if self.missing_retries == 0: + raise ValueError( + f"Client {self._node.name} has no torrents matching name {name}." + ) + + logger.warning( + f"Client {self._node.name} has no torrents matching name {name}." + ) + self.missing_retries -= 1 + return False + status = list(response.values())[0] return status[b"is_seed"]