graingert · GitHub

Bug report

Bug description:

this 'deadlocks' on eager tasks, but raises an EG as expected on regular 'lazy' tasks.

import sys
import asyncio
if sys.version_info >= (3, 13):
    from asyncio import EventLoop
elif sys.platform == "win32":
    from asyncio import ProactorEventLoop as EventLoop
else:
    from asyncio import SelectorEventLoop as EventLoop
def loop_factory():
    loop = EventLoop()
    loop.set_task_factory(asyncio.eager_task_factory)
    return loop
async def main():
    async with asyncio.TaskGroup() as tg:
        async def third_task():
            raise RuntimeError("third task failed")
        async def second_task():
            tg.create_task(third_task())
            await asyncio.Event().wait()
        tg.create_task(second_task())
# asyncio.run(main())
asyncio.run(main(), loop_factory=loop_factory)

CPython versions tested on:

3.12, 3.13, 3.14

Operating systems tested on:

Linux

Linked PRs

Read the original on github.com ↗