◐ Shell
clean mode source ↗

bpo-46329: Split calls into precall and call instructions. by markshannon · Pull Request #30855 · python/cpython

YEah, I can reproduce the segfault locally and doesn't happen if I revert this PR:

$ ./python -m test -u all -W --slowest --fail-env-changed   test_lib2to3 -F -v  
  File "/home/pablogsal/github/cpython/Lib/lib2to3/pytree.py", line 786 in _recursive_matches
  File "/home/pablogsal/github/cpython/Lib/lib2to3/pytree.py", line 786 in _recursive_matches
  File "/home/pablogsal/github/cpython/Lib/lib2to3/pytree.py", line 786 in _recursive_matches
  ...                                                                                                                                                                                                                                                                                                                               Extension modules: _testcapi (total: 1)                                                                                                                           [1]    26282 segmentation fault  ./python -m test -u all -W --slowest --fail-env-changed test_lib2to3 -F -v

This is the stack trace:

Program received signal SIGSEGV, Segmentation fault.                                                                                                              0x00000000006a2c74 in _PyEval_EvalFrameDefault (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5cee4a0, throwflag=0) at Python/ceval.c:1653
1653        _Py_EnsureTstateNotNULL(tstate);                                                                                                                      (gdb)                                                                                                                                                             (gdb) bt                                                                                                                                                          #0  0x00000000006a2c74 in _PyEval_EvalFrameDefault (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5cee4a0, throwflag=0) at Python/ceval.c:1653
#1  0x000000000051eae9 in _PyEval_EvalFrame (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5cee4a0, throwflag=0) at ./Include/internal/pycore_ceval.h:53
#2  0x000000000051e6c1 in gen_send_ex2 (gen=0x7ffff5cee450, arg=0x0, presult=0x7fffff7ff360, exc=0, closing=0) at Objects/genobject.c:219
#3  0x000000000051c385 in gen_iternext (gen=0x7ffff5cee450) at Objects/genobject.c:585
#4  0x00000000006b76cf in _PyEval_EvalFrameDefault (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5da68a0, throwflag=0) at Python/ceval.c:4214
#5  0x000000000051eae9 in _PyEval_EvalFrame (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5da68a0, throwflag=0) at ./Include/internal/pycore_ceval.h:53
#6  0x000000000051e6c1 in gen_send_ex2 (gen=0x7ffff5da6850, arg=0x0, presult=0x7fffff8015f0, exc=0, closing=0) at Objects/genobject.c:219
#7  0x000000000051c385 in gen_iternext (gen=0x7ffff5da6850) at Objects/genobject.c:585
#8  0x00000000006b76cf in _PyEval_EvalFrameDefault (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5da6120, throwflag=0) at Python/ceval.c:4214
#9  0x000000000051eae9 in _PyEval_EvalFrame (tstate=0xaee548 <_PyRuntime+130792>, frame=0x7ffff5da6120, throwflag=0) at ./Include/internal/pycore_ceval.h:53
#10 0x000000000051e6c1 in gen_send_ex2 (gen=0x7ffff5da60d0, arg=0x0, presult=0x7fffff803880, exc=0, closing=0) at Objects/genobject.c:219
#11 0x000000000051c385 in gen_iternext (gen=0x7ffff5da60d0) at Objects/genobject.c:585