Bug report
Bug description:
I've reproduced the issue reported in https://discuss.python.org/t/tachyon-97-error-rate/107619
The issue is caused by:
linetable = read_py_bytes (unwinder ,
GET_MEMBER (uintptr_t , code_object , unwinder -> debug_offsets .code_object .linetable ), 4096 );
The linetable for HttpCli.tx_browser and HttpCli.run is above 4096:
2026-06-06T17:13:54.694708000+0200 maurycy@gimel /Users/maurycy/work/cpython (main fded34d*? ) % uv run linetable_dist.py ~ /Desktop/copyparty
objects=3472 median=51 max=19536 > 4096=7
19536 AuthSrv._reload /Users/maurycy/Desktop/copyparty/copyparty/authsrv.py:1762
10640 HttpCli.tx_browser /Users/maurycy/Desktop/copyparty/copyparty/httpcli.py:6749
9131 HttpCli.run /Users/maurycy/Desktop/copyparty/copyparty/httpcli.py:335
6245 < module> /Users/maurycy/Desktop/copyparty/copyparty/util.py:1
5087 Up2k._handle_json /Users/maurycy/Desktop/copyparty/copyparty/up2k.py:3035
4146 SvcHub.__init__ /Users/maurycy/Desktop/copyparty/copyparty/svchub.py:136
4133 HttpCli.handle_plain_upload /Users/maurycy/Desktop/copyparty/copyparty/httpcli.py:3648
3753 HttpCli.dump_to_file /Users/maurycy/Desktop/copyparty/copyparty/httpcli.py:2444
The 4096 limit is too small even for our stdlib:
2026-06-06T17:14:47.179006000+0200 maurycy@gimel /Users/maurycy/work/cpython (main fded34d*? ) % uv run linetable_dist.py ~ /work/cpython/Lib
objects=92035 median=49 max=37416 > 4096=37
37416 < module> /Users/maurycy/work/cpython/Lib/html/entities.py:1
20958 < module> /Users/maurycy/work/cpython/Lib/test/test_ast/snippets.py:1
17060 < module> /Users/maurycy/work/cpython/Lib/locale.py:1
11158 < module> /Users/maurycy/work/cpython/Lib/test/test_dis.py:1
10063 SuggestionFormattingTestBase.test_name_error_suggestions_do_not_trigger_for_too_many_locals.< locals> .func /Users/maurycy/work/cpython/Lib/test/test_traceback.py:4899
9953 < module> /Users/maurycy/work/cpython/Lib/stringprep.py:1
9400 < module> /Users/maurycy/work/cpython/Lib/test/re_tests.py:1
5892 < module> /Users/maurycy/work/cpython/Lib/encodings/aliases.py:1
5791 < module> /Users/maurycy/work/cpython/Lib/test/test_socket.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/mac_arabic.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/cp866.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/cp865.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/cp863.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/cp862.py:1
5730 < module> /Users/maurycy/work/cpython/Lib/encodings/cp861.py:1
Reproduction
Using real file from stdlib:
import os , _remote_debugging
src = open ("/Users/maurycy/work/cpython/Lib/html/entities.py" ).read ()
src += "\n _remote_debugging.RemoteUnwinder(os.getpid()).get_stack_trace()\n "
exec (compile (src , "entities.py" , "exec" ))
print ("OK" )
We get:
2026-06-06T17:17:34.919627000+0200 maurycy@gimel /Users/maurycy/work/cpython (main fded34d*? ) % uv run repro.py
Traceback (most recent call last):
File " /Users/maurycy/src/github.com/maurycy/cpython/repro.py" , line 5, in < module>
exec(compile(src, " entities.py" , " exec" ))
~ ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File " entities.py" , line 2515, in < module>
RuntimeError: Invalid bytes length (37445) at 0xc5091c000
Bonus
(thx Claude)
linetable_dist.py
#!/usr/bin/env python3
import warnings
from pathlib import Path
from statistics import median
from sys import argv
from types import CodeType
warnings .simplefilter ("ignore" )
SKIP = {"venv" , "site-packages" , "__pycache__" }
def codes (co ):
yield co
for c in co .co_consts :
if isinstance (c , CodeType ):
yield from codes (c )
rows = []
for arg in argv [1 :]:
p = Path (arg ).expanduser ()
for f in [p ] if p .is_file () else p .rglob ("*.py" ):
if SKIP & set (f .parts ):
continue
try :
co = compile (f .read_text (errors = "replace" ), str (f ), "exec" )
except Exception :
continue
rows += [(len (c .co_linetable ), str (f ), c .co_qualname , c .co_firstlineno )
for c in codes (co )]
rows .sort (reverse = True )
vals = [s for s , * _ in rows ]
print (f"objects={ len (vals )} median={ median (vals ):.0f} max={ max (vals )} "
f">4096={ sum (v > 4096 for v in vals )} " )
for s , fn , qual , lineno in rows [:15 ]:
print (f"{ s :8d} { qual :24s} { fn } :{ lineno } " )
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Linked PRs
Reactions are currently unavailable
Bug report
Bug description:
I've reproduced the issue reported in https://discuss.python.org/t/tachyon-97-error-rate/107619
The issue is caused by:
cpython/Modules/_remote_debugging/code_objects.c
Lines 389 to 390 in 884ac3e
The linetable for
HttpCli.tx_browserandHttpCli.runis above 4096:The 4096 limit is too small even for our stdlib:
Reproduction
Using real file from stdlib:
We get:
Bonus
(thx Claude)
linetable_dist.pyCPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Linked PRs