From 501e2908398bae5e797fbc78bdc0dad9f8550c4f Mon Sep 17 00:00:00 2001 From: Brett Rowan <121075405+b-rowan@users.noreply.github.com> Date: Sun, 25 Aug 2024 09:28:27 -0600 Subject: [PATCH] bug: fix a bug where whatsminers could raise a cascading TimeoutError. --- pyasic/rpc/base.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pyasic/rpc/base.py b/pyasic/rpc/base.py index d6d4a894..a984cbcc 100644 --- a/pyasic/rpc/base.py +++ b/pyasic/rpc/base.py @@ -215,14 +215,18 @@ async def _send_bytes( return b"{}" # send the command - data_task = asyncio.create_task(self._read_bytes(reader, timeout=timeout)) - logging.debug(f"{self} - ([Hidden] Send Bytes) - Writing") - writer.write(data) - logging.debug(f"{self} - ([Hidden] Send Bytes) - Draining") - await writer.drain() - - await data_task - ret_data = data_task.result() + try: + data_task = asyncio.create_task(self._read_bytes(reader, timeout=timeout)) + logging.debug(f"{self} - ([Hidden] Send Bytes) - Writing") + writer.write(data) + logging.debug(f"{self} - ([Hidden] Send Bytes) - Draining") + await writer.drain() + + await data_task + ret_data = data_task.result() + except TimeoutError: + logging.warning(f"{self} - ([Hidden] Send Bytes) - Read timeout expired.") + return b"{}" # close the connection logging.debug(f"{self} - ([Hidden] Send Bytes) - Closing")