forked from goodboy/tractor
Denoise some common teardown "errors" to warnings.
parent
8522f90000
commit
5d7a4e2b12
|
@ -144,7 +144,7 @@ async def _invoke(
|
|||
try:
|
||||
await chan.send(err_msg)
|
||||
except trio.ClosedResourceError:
|
||||
log.exception(
|
||||
log.warning(
|
||||
f"Failed to ship error to caller @ {chan.uid}")
|
||||
if cs is None:
|
||||
# error is from above code not from rpc invocation
|
||||
|
|
|
@ -15,6 +15,7 @@ from .log import get_logger
|
|||
from . import _state
|
||||
from ._discovery import get_root
|
||||
from ._state import is_root_process
|
||||
from ._exceptions import is_multi_cancelled
|
||||
|
||||
try:
|
||||
# wtf: only exported when installed in dev mode?
|
||||
|
@ -318,10 +319,7 @@ async def _maybe_enter_pm(err):
|
|||
|
||||
# Really we just want to mostly avoid catching KBIs here so there
|
||||
# might be a simpler check we can do?
|
||||
and trio.MultiError.filter(
|
||||
lambda exc: exc if not isinstance(exc, trio.Cancelled) else None,
|
||||
err,
|
||||
)
|
||||
and not is_multi_cancelled(err)
|
||||
):
|
||||
log.warning("Actor crashed, entering debug mode")
|
||||
await post_mortem()
|
||||
|
|
|
@ -51,7 +51,7 @@ class MsgpackStream:
|
|||
data = await self.stream.receive_some(2**10)
|
||||
log.trace(f"received {data}") # type: ignore
|
||||
except trio.BrokenResourceError:
|
||||
log.error(f"Stream connection {self.raddr} broke")
|
||||
log.warning(f"Stream connection {self.raddr} broke")
|
||||
return
|
||||
|
||||
if data == b'':
|
||||
|
|
|
@ -13,6 +13,7 @@ from ._state import current_actor
|
|||
from .log import get_logger, get_loglevel
|
||||
from ._actor import Actor
|
||||
from ._portal import Portal
|
||||
from ._exceptions import is_multi_cancelled
|
||||
from . import _state
|
||||
from . import _spawn
|
||||
|
||||
|
@ -246,7 +247,9 @@ async def open_nursery() -> typing.AsyncGenerator[ActorNursery, None]:
|
|||
# For now, shield both.
|
||||
with trio.CancelScope(shield=True):
|
||||
etype = type(err)
|
||||
if etype in (trio.Cancelled, KeyboardInterrupt):
|
||||
if etype in (trio.Cancelled, KeyboardInterrupt) or (
|
||||
is_multi_cancelled(err)
|
||||
):
|
||||
log.warning(
|
||||
f"Nursery for {current_actor().uid} was "
|
||||
f"cancelled with {etype}")
|
||||
|
|
Loading…
Reference in New Issue