Suppress `trio.EndOfChannel`s raised by remote peer

Since now `tractor` will raise this native `trio`-exc translated from
a `Stop` msg when the peer gracefully terminates a `tractor.MsgStream`.
Just `info()` log in such cases versus continuing to warn for the
others.
stop_is_oec
Tyler Goodlet 2025-02-13 11:38:29 -05:00
parent 5e371f1d73
commit 2fc4ccf011
1 changed files with 18 additions and 6 deletions

View File

@ -394,7 +394,8 @@ async def register_with_sampler(
finally: finally:
if ( if (
sub_for_broadcasts sub_for_broadcasts
and subs and
subs
): ):
try: try:
subs.remove(stream) subs.remove(stream)
@ -796,7 +797,6 @@ async def uniform_rate_send(
clear_types = _tick_groups['clears'] clear_types = _tick_groups['clears']
while True: while True:
# compute the remaining time to sleep for this throttled cycle # compute the remaining time to sleep for this throttled cycle
left_to_sleep = throttle_period - diff left_to_sleep = throttle_period - diff
@ -891,11 +891,23 @@ async def uniform_rate_send(
# ``pikerd`` these kinds of errors! # ``pikerd`` these kinds of errors!
trio.ClosedResourceError, trio.ClosedResourceError,
trio.BrokenResourceError, trio.BrokenResourceError,
trio.EndOfChannel,
ConnectionResetError, ConnectionResetError,
): ) as ipc_err:
# if the feed consumer goes down then drop match ipc_err:
# out of this rate limiter case trio.EndOfChannel():
log.warning(f'{stream} closed') log.info(
f'{stream} terminated by peer,\n'
f'{ipc_err!r}'
)
case _:
# if the feed consumer goes down then drop
# out of this rate limiter
log.warning(
f'{stream} closed due to,\n'
f'{ipc_err!r}'
)
await stream.aclose() await stream.aclose()
return return