Handle `tractor.TransportClosed` as "stream-closed"
In both the ems and sampler since on new `tractor` this is the "wrapping" exception raised when the transport layer terminates early but in a psuedo-"graceful" way, expected when a peer actors disconnect. Previously we were crashing in this case since old `tractor` just raised the underlying `trio`-source-exceptions verbatim. Also, - use `Aid.reprol()` in log msgs vs old `.chan.uid` refs (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codetpt_closed_and_finally_footguns
parent
d0eb6b479d
commit
ac6ab3791e
|
|
@ -729,6 +729,7 @@ class Router(Struct):
|
||||||
except (
|
except (
|
||||||
trio.ClosedResourceError,
|
trio.ClosedResourceError,
|
||||||
trio.BrokenResourceError,
|
trio.BrokenResourceError,
|
||||||
|
tractor.TransportClosed,
|
||||||
):
|
):
|
||||||
to_remove.add(client_stream)
|
to_remove.add(client_stream)
|
||||||
log.warning(
|
log.warning(
|
||||||
|
|
@ -1699,5 +1700,5 @@ async def _emsd_main(
|
||||||
if not client_streams:
|
if not client_streams:
|
||||||
log.warning(
|
log.warning(
|
||||||
f'Order dialog is not being monitored:\n'
|
f'Order dialog is not being monitored:\n'
|
||||||
f'{oid} ->\n{client_stream._ctx.chan.uid}'
|
f'{oid!r} <-> {client_stream.chan.aid.reprol()}\n'
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ class Sampler:
|
||||||
trio.BrokenResourceError,
|
trio.BrokenResourceError,
|
||||||
trio.ClosedResourceError,
|
trio.ClosedResourceError,
|
||||||
trio.EndOfChannel,
|
trio.EndOfChannel,
|
||||||
|
tractor.TransportClosed,
|
||||||
)
|
)
|
||||||
|
|
||||||
# holds all the ``tractor.Context`` remote subscriptions for
|
# holds all the ``tractor.Context`` remote subscriptions for
|
||||||
|
|
@ -753,7 +754,7 @@ async def sample_and_broadcast(
|
||||||
log.warning(
|
log.warning(
|
||||||
f'Feed OVERRUN {sub_key}'
|
f'Feed OVERRUN {sub_key}'
|
||||||
f'@{bus.brokername} -> \n'
|
f'@{bus.brokername} -> \n'
|
||||||
f'feed @ {chan.uid}\n'
|
f'feed @ {chan.aid.reprol()}\n'
|
||||||
f'throttle = {throttle} Hz'
|
f'throttle = {throttle} Hz'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue