From 932b8411766740664cb94e9f7d7c4b39134077e8 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Tue, 31 May 2022 12:19:29 -0400 Subject: [PATCH] Allow up to 4 `msgpsec` decode failures --- tractor/_ipc.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tractor/_ipc.py b/tractor/_ipc.py index 51f84f1..f0ffb75 100644 --- a/tractor/_ipc.py +++ b/tractor/_ipc.py @@ -144,7 +144,7 @@ class MsgpackTCPStream(MsgTransport): ''' import msgspec # noqa - last_decode_failed: bool = False + decodes_failed: int = 0 while True: try: @@ -181,12 +181,16 @@ class MsgpackTCPStream(MsgTransport): msgspec.DecodeError, UnicodeDecodeError, ): - if not last_decode_failed: + if decodes_failed < 4: # ignore decoding errors for now and assume they have to # do with a channel drop - hope that receiving from the # channel will raise an expected error and bubble up. - log.error('`msgspec` failed to decode!?') - last_decode_failed = True + log.error( + '`msgspec` failed to decode!?\n' + 'dumping bytes:\n' + f'{msg_bytes}' + ) + decodes_failed += 1 else: raise