Skip to content

asyncio.TaskGroup corrupts uncancel() stack when the parent task replaces the cancelled error #95289

Description

@graingert

Bug report

importasyncioclassMyException(Exception):
passasyncdefasync_fn():
awaitasyncio.sleep(0)
raiseMyExceptionasyncdefmain():
task=asyncio.current_task()
try:
asyncwithasyncio.TaskGroup() astg:
tg.create_task(async_fn())
try:
awaitasyncio.sleep(1)
exceptasyncio.CancelledError:
pass
except* MyException:
print("done!")
print(f"{task.cancelling()=} should be 0")
asyncio.run(main())

Metadata

Metadata

Labels

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions