From 4ca81e39e6094d2edc015e3e6192e2f7d55aff90 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Tue, 15 Jul 2025 17:28:48 -0400 Subject: [PATCH] Never shield-wait `ipc_server.wait_for_no_more_peers()` As mentioned in prior testing commit, it can cause the worst kind of hangs, the SIGINT ignoring kind.. Pretty sure there was never any reason outside some esoteric multi-actor debugging case, and pretty sure that already was solved? --- tractor/_runtime.py | 4 +--- tractor/ipc/_server.py | 10 +++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tractor/_runtime.py b/tractor/_runtime.py index 922f5daa..ef7a3018 100644 --- a/tractor/_runtime.py +++ b/tractor/_runtime.py @@ -1760,9 +1760,7 @@ async def async_main( f' {pformat(ipc_server._peers)}' ) log.runtime(teardown_report) - await ipc_server.wait_for_no_more_peers( - shield=True, - ) + await ipc_server.wait_for_no_more_peers() teardown_report += ( '-]> all peer channels are complete.\n' diff --git a/tractor/ipc/_server.py b/tractor/ipc/_server.py index e857db19..46fde2fc 100644 --- a/tractor/ipc/_server.py +++ b/tractor/ipc/_server.py @@ -814,10 +814,14 @@ class Server(Struct): async def wait_for_no_more_peers( self, - shield: bool = False, + # XXX, should this even be allowed? + # -> i've seen it cause hangs on teardown + # in `test_resource_cache.py` + # _shield: bool = False, ) -> None: - with trio.CancelScope(shield=shield): - await self._no_more_peers.wait() + await self._no_more_peers.wait() + # with trio.CancelScope(shield=_shield): + # await self._no_more_peers.wait() async def wait_for_peer( self,