diff --git a/tractor/_actor.py b/tractor/_actor.py index 201ed5f..22e3fe9 100644 --- a/tractor/_actor.py +++ b/tractor/_actor.py @@ -207,19 +207,23 @@ async def _invoke( # if not isinstance(err, trio.ClosedResourceError) and ( # if not is_multi_cancelled(err) and ( + entered_debug: bool = False if not isinstance(err, ContextCancelled) or ( isinstance(err, ContextCancelled) and ctx._cancel_called ): # XXX: is there any case where we'll want to debug IPC - # disconnects? I can't think of a reason that inspecting + # disconnects as a default? + # + # I can't think of a reason that inspecting # this type of failure will be useful for respawns or # recovery logic - the only case is some kind of strange bug - # in `trio` itself? - await _debug._maybe_enter_pm(err) + # in our transport layer itself? Going to keep this + # open ended for now. - # entered = await _debug._maybe_enter_pm(err) - # if not entered: - # log.exception("Actor crashed:") + entered_debug = await _debug._maybe_enter_pm(err) + + if not entered_debug: + log.exception("Actor crashed:") # always ship errors back to caller err_msg = pack_error(err, tb=tb)