forked from goodboy/tractor
1
0
Fork 0

Drop asyncio-cancelled-itself msg for now, report task names

310_plus
Tyler Goodlet 2022-06-26 13:49:00 -04:00
parent 9e37bb22e1
commit 0b1c1ac568
1 changed files with 16 additions and 11 deletions

View File

@ -259,6 +259,7 @@ def _run_asyncio_task(
nonlocal chan
aio_err = chan._aio_err
task_err: Optional[BaseException] = None
tname = task.get_name()
# only to avoid ``asyncio`` complaining about uncaptured
# task exceptions
@ -268,9 +269,10 @@ def _run_asyncio_task(
task_err = terr
if isinstance(terr, CancelledError):
log.cancel(f'`asyncio` task cancelled: {task.get_name()}')
log.cancel(
f'infected `asyncio` task cancelled: {tname}')
else:
log.exception(f'`asyncio` task: {task.get_name()} errored')
log.exception(f'`asyncio` task: {tname} errored')
assert type(terr) is type(aio_err), 'Asyncio task error mismatch?'
@ -285,21 +287,24 @@ def _run_asyncio_task(
# We might want to change this in the future though.
from_aio.close()
if type(aio_err) is CancelledError:
log.cancel("infected task was cancelled")
# if type(aio_err) is CancelledError:
# if not task_err:
# log.cancel(
# f"infected task {tname} cancelled itself, was not ``trio``"
# )
# TODO: show that the cancellation originated
# from the ``trio`` side? right?
# if cancel_scope.cancelled:
# raise aio_err from err
elif task_err is None:
if task_err is None:
assert aio_err
aio_err.with_traceback(aio_err.__traceback__)
msg = ''.join(traceback.format_exception(type(aio_err)))
log.error(
f'infected task errorred:\n{msg}'
)
# msg = ''.join(traceback.format_exception(type(aio_err)))
# log.error(
# f'infected task errorred:\n{msg}'
# )
# raise any ``asyncio`` side error.
raise aio_err
@ -392,8 +397,8 @@ async def run_task(
) -> Any:
'''
Run an ``asyncio`` async function or generator in a task, return
or stream the result back to ``trio``.
Run an ``asyncio`` async function or generator in a new task, block
and return the result back to ``trio``.
'''
# simple async func