You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
asyncio.print_call_graph() loses the call stack at aiter(callable, stop_value) #157044
The two-argument form of aiter() hides everything the callable is waiting on. The awaitable it produces exposes nothing about the coroutine it wraps, so the walk stops there
* Task(name='worker', id=0x105e7cb90)
+ Call stack:
| File '/Users/timofeiivankov/cpython/Lib/asyncio/locks.py', line 210, in async Event.wait()
| File '/Users/timofeiivankov/cpython/repro.py', line 4, in async deep()
| File '/Users/timofeiivankov/cpython/repro.py', line 7, in async produce()
| File '/Users/timofeiivankov/cpython/repro.py', line 11, in async worker()
Actual:
* Task(name='worker', id=0x105adcb90)
+ Call stack:
| File '/Users/timofeiivankov/cpython/repro.py', line 11, in async worker()
@picnixz The callable iterator's frameless awaitable stops the graph traversal. The fix #157202 exposes its wrapped object so traversal reaches the underlying coroutine stack. Pls review and let me know if this fix makes sense. thanks!
Activity
deadlovelll commentedon Sep 6, 2026
@kumaraditya303
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
pythongh-157044: Fix asyncio call graph truncation at aiter(callable,…
goutamadwant commentedon Sep 9, 2026
@picnixz The callable iterator's frameless awaitable stops the graph traversal. The fix #157202 exposes its wrapped object so traversal reaches the underlying coroutine stack. Pls review and let me know if this fix makes sense. thanks!
kumaraditya303 commentedon Sep 12, 2026
See #157361
anextandaiterin pure Python #157361