Repository navigation
python -m asyncio ps fails if any task name is longer than 255 characters #157788
Copy link
Copy link
Closed
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytopic-asynciotype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
One task name longer than 255 characters makes python -m asyncio ps fail for the whole process. The length limit is treated as a validity check instead of a cap.
Repro:
import asyncio
import os
from _remote_debugging import RemoteUnwinder
async def main():
asyncio.create_task(asyncio.sleep(10), name='x' * 256)
await asyncio.sleep(0)
print(RemoteUnwinder(os.getpid()).get_all_awaited_by())
asyncio.run(main())Actually:
Traceback (most recent call last):
File "/Users/timofeiivankov/cpython/repro.py", line 10, in <module>
asyncio.run(main())
~~~~~~~~~~~^^^^^^^^
File "/Users/timofeiivankov/cpython/Lib/asyncio/runners.py", line 205, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "/Users/timofeiivankov/cpython/Lib/asyncio/runners.py", line 128, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Users/timofeiivankov/cpython/Lib/asyncio/base_events.py", line 725, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/Users/timofeiivankov/cpython/repro.py", line 8, in main
print(RemoteUnwinder(os.getpid()).get_all_awaited_by())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
RuntimeError: Invalid string length (256) at 0x101493800
Expected: the call returns and the long name comes back truncated:
[AwaitedInfo(thread_id=21170325, awaited_by=[
TaskInfo(task_id=4312485712, task_name='Task-1', ...),
TaskInfo(task_id=4312485232, task_name='xxx…' (truncated to 255), ...)])]
Proposed fix: Truncate to the limit instead of raising in object_reading.c
I have a fix ready for that
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Linked PRs
- gh-157788: Fix python -m asyncio ps failing on long task names #157790
- [3.14] gh-157788: Fix python -m asyncio ps failing on long task names #157843
- [3.15] gh-157788: Fix python -m asyncio ps failing on long task names (GH-157790) #157826
- gh-157788: Fix
test_long_task_name_is_truncatedby not hardcoding main task name #157911 - [3.15] gh-157788: Fix
test_long_task_name_is_truncatedby not hardcoding main task name (GH-157911) #157941 - [3.14] gh-157788: Fix
test_long_task_name_is_truncatedby not hardcoding main task name (GH-157911) #157942
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytopic-asynciotype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Projects
- StatusShow more project fieldsDone
Activity
[3.15] gh-157788: Fix python -m asyncio ps failing on long task names (…
[3.14] gh-157788: Fix python -m asyncio ps failing on long task names (…
encukou commentedon Sep 21, 2026
The new test fails on refleaks buildbots, see e.g. https://buildbot.python.org/#/builders/2263/builds/295
deadlovelll commentedon Sep 21, 2026
Thank you! I'll take a look
gh-157788: Fix `test_long_task_name_is_truncated` by not hardcoding m…
[3.15] gh-157788: Fix `test_long_task_name_is_truncated` by not hardc…
[3.14] gh-157788: Fix `test_long_task_name_is_truncated` by not hardc…