Allow up to 4 `msgpsec` decode failures

310_plus
Tyler Goodlet 2022-05-31 12:19:29 -04:00
parent 414c59cca6
commit b3fd5da1be
1 changed files with 8 additions and 4 deletions

View File

@ -231,7 +231,7 @@ class MsgspecTCPStream(MsgpackTCPStream):
'''
import msgspec # noqa
last_decode_failed: bool = False
decodes_failed: int = 0
while True:
try:
@ -268,12 +268,16 @@ class MsgspecTCPStream(MsgpackTCPStream):
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