Closed as not planned
Description
Crash report
What happened?
File test_oops.py
(based on a test from greenlet project that was observed to crash)
import unittest
from contextvars import copy_context
from greenlet import getcurrent, greenlet
class Oops_test(unittest.TestCase):
def test_oops(self):
let = greenlet(copy_context().run)
let.switch(getcurrent().switch)
Run the above code with python3 -m unittest test_oops
:
python3 -m unittest test_oops
Segmentation fault (core dumped)
Just tested with the current top of the 3.13 branch (5c161cb8329c941aa219dc34c56afa368516d6fb
):
python -VV
Python 3.13.0rc1+ (heads/3.13-dirty:5c161cb832, Aug 7 2024, 05:59:15) [GCC 14.1.1 20240701 (Red Hat 14.1.1-7)]
python3 -m unittest test_oops
python3: ./Include/internal/pycore_frame.h:81: _PyFrame_GetCode: Assertion `PyCode_Check(f->f_executable)' failed.
Aborted (core dumped)
This is an intermittent crash, so it may not crash every single time, but if you run it in a loop, e.g. 10 times, it will likely crash in some of those.
This appears to be a regression observed from 3.13.0b4
, and a bisect between 3.13.0b4
and 3.13.0rc1
identified 233ed46e6d2ba1d1f7d83a72ccf9aad9e628ede1
as the first bad commit (please double check):
commit 233ed46e6d2ba1d1f7d83a72ccf9aad9e628ede1
Author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Date: Thu Jul 18 17:38:28 2024 +0200
[3.13] gh-118934: Make PyEval_GetLocals return borrowed reference (GH-119769) (#121869)
gh-118934: Make PyEval_GetLocals return borrowed reference (GH-119769)
(cherry picked from commit e65cb4c6f01a687f451ad9db1600525e1c5832c4)
Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
Include/internal/pycore_frame.h | 4 +++
Lib/test/test_sys.py | 2 +-
.../2024-05-30-04-11-36.gh-issue-118934.fbDqve.rst | 1 +
Objects/frameobject.c | 4 +++
Python/ceval.c | 33 +++++++++++++++++++++-
5 files changed, 42 insertions(+), 2 deletions(-)
Please let me know if I can provide any additional info.
CPython versions tested on:
3.12
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.13.0rc1 (main, Aug 1 2024, 00:00:00) [GCC 14.1.1 20240701 (Red Hat 14.1.1-7)]