beanbaginc / kgb

Python function spy support for unit tests
MIT License
48 stars 5 forks source link

Crashes with Python 3.13 b2 #11

Open alebastr opened 1 week ago

alebastr commented 1 week ago

The following example crashes with Python 3.13.0b2 (python3-3.13.0~b2-3.fc41.x86_64):

#!/usr/bin/python3
from unittest import TestCase

from kgb import SpyAgency

def outer(arg):
    # required to reproduce the crash
    def _inner_unused():
        # must be a closure to repro
        print(arg)

    return 1

class CrashTest(SpyAgency, TestCase):

    def test(self):
        self.spy_on(outer)
        outer(1)

if __name__ == '__main__':
    t = CrashTest()
    t.test()

(originally reproduced and extracted from the RBTools test suite)

Interpreter backtrace: ``` (gdb) bt #0 framelocalsproxy_getitem (self=, key=0x7ffff7ed4b98 <_PyRuntime+44888>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/frameobject.c:117 #1 0x00007ffff7b5cb2b in dict_merge (interp=, a=, b=0x7fffe942df30, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3839 #2 dict_merge (interp=, a=, b=0x7fffe942df30, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3771 #3 0x00007ffff7ca5a72 in _PyEval_GetFrameLocals () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:2511 #4 0x00007ffff7b61abf in cfunction_vectorcall_NOARGS (func=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/cpython/methodobject.h:50 #5 0x00007ffff7b60dc7 in _PyObject_VectorcallTstate (tstate=0x7ffff7f0e2e0 <_PyRuntime+280224>, callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/internal/pycore_call.h:168 #6 PyObject_Vectorcall (callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/call.c:327 #7 0x00007ffff7b737f4 in _PyEval_EvalFrameDefault (tstate=, frame=, throwflag=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/generated_cases.c.h:813 #8 0x00007ffff7c4052b in PyEval_EvalCode (co=0x7fffe97651b0, globals=, locals=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:599 #9 0x00007ffff7c628d0 in run_eval_code_obj (tstate=tstate@entry=0x7ffff7f0e2e0 <_PyRuntime+280224>, co=co@entry=0x7fffe97651b0, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1292 #10 0x00007ffff7c5cf33 in run_mod (mod=mod@entry=0x5555556130f0, filename=filename@entry=0x7fffe9756a30, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, flags=flags@entry=0x7fffffffde68, arena=arena@entry=0x7ffff7647cf0, interactive_src=0x0, generate_new_source=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1377 #11 0x00007ffff7c7d016 in pyrun_file (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, start=start@entry=257, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, closeit=closeit@entry=1, flags=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1210 #12 0x00007ffff7c7c18f in _PyRun_SimpleFileObject (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:459 #13 0x00007ffff7c7bfb1 in _PyRun_AnyFileObject (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:77 #14 0x00007ffff7c756b7 in pymain_run_file_obj (program_name=0x7fffe9734630, filename=0x7fffe9756a30, skip_source_first_line=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:357 #15 pymain_run_file (config=0x7ffff7ee09d8 <_PyRuntime+93592>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:376 #16 pymain_run_python (exitcode=0x7fffffffde5c) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:639 #17 Py_RunMain () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:718 #18 0x00007ffff7c2c89c in Py_BytesMain (argc=, argv=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:772 #19 0x00007ffff7838248 in __libc_start_call_main (main=main@entry=0x555555555160
, argc=argc@entry=2, argv=argv@entry=0x7fffffffe0c8) at ../sysdeps/nptl/libc_start_call_main.h:58 #20 0x00007ffff783830b in __libc_start_main_impl (main=0x555555555160
, argc=2, argv=0x7fffffffe0c8, init=, fini=, rtld_fini=, stack_end=0x7fffffffe0b8) at ../csu/libc-start.c:360 #21 0x0000555555555095 in _start () (gdb) bt full #0 framelocalsproxy_getitem (self=, key=0x7ffff7ed4b98 <_PyRuntime+44888>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/frameobject.c:117 value = 0x8 i = frame = 0x7fffe95df780 co = 0x7fffe945a1f0 extra = #1 0x00007ffff7b5cb2b in dict_merge (interp=, a=, b=0x7fffe942df30, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3839 keys = iter = 0x7fffe947f550 key = value = status = mp = other = res = slow_exit = mp = other = res = slow_exit = res = keys = iter = key = value = status = #2 dict_merge (interp=, a=, b=0x7fffe942df30, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3771 mp = other = res = 0 slow_exit = keys = iter = key = value = status = #3 0x00007ffff7ca5a72 in _PyEval_GetFrameLocals () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:2511 ret = 0x7fffe95e7800 op = dealloc = op = dealloc = op = dealloc = tstate = current_frame = locals = 0x7fffe942df30 #4 0x00007ffff7b61abf in cfunction_vectorcall_NOARGS (func=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/cpython/methodobject.h:50 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> nargs = meth = result = #5 0x00007ffff7b60dc7 in _PyObject_VectorcallTstate (tstate=0x7ffff7f0e2e0 <_PyRuntime+280224>, callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/internal/pycore_call.h:168 func = res = func = res = nargs = #6 PyObject_Vectorcall (callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/call.c:327 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> #7 0x00007ffff7b737f4 in _PyEval_EvalFrameDefault (tstate=, frame=, throwflag=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/generated_cases.c.h:813 total_args = self = method = op = dealloc = self_or_null = callable = 0x7ffff76c37e0 this_instr = args = 0x7ffff7fbb180 res = opcode = oparg = entry_frame = {f_executable = 0x7ffff7ec1130 <_Py_NoneStruct>, previous = 0x0, f_funcobj = 0x7fffe97651b0, f_globals = 0x7fffe9734500, f_builtins = 0x7fffffffdba0, f_locals = 0x2cc118914ec51e00, frame_obj = 0x7fffffffdbb0, instr_ptr = 0x7ffff7dafbc2 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stacktop = 0, return_offset = 0, owner = 3 '\003', localsplus = {0x7ffff7f0e2e0 <_PyRuntime+280224>}} next_instr = 0x7fffe945a2d8 stack_pointer = exception_unwind = dying = __func__ = "_PyEval_EvalFrameDefault" opcode_targets = {0x7ffff7a5590b <_PyEval_EvalFrameDefault-1165989>, 0x7ffff7a51d4c <_PyEval_EvalFrameDefault-1181284>, 0x7ffff7b78bdc <_PyEval_EvalFrameDefault+26668>, 0x7ffff7b79739 <_PyEval_EvalFrameDefault+29577>, 0x7ffff7b7674b <_PyEval_EvalFrameDefault+17307>, 0x7ffff7b75bb3 <_PyEval_EvalFrameDefault+14339>, 0x7ffff7a54d18 <_PyEval_EvalFrameDefault-1169048>, 0x7ffff7b78684 <_PyEval_EvalFrameDefault+25300>, 0x7ffff7b7a671 <_PyEval_EvalFrameDefault+33473>, 0x7ffff7b79a2b <_PyEval_EvalFrameDefault+30331>, 0x7ffff7a549ef <_PyEval_EvalFrameDefault-1169857>, 0x7ffff7b7b7aa <_PyEval_EvalFrameDefault+37882>, 0x7ffff7b7a714 <_PyEval_EvalFrameDefault+33636>, 0x7ffff7b7901d <_PyEval_EvalFrameDefault+27757>, 0x7ffff7b78fc8 <_PyEval_EvalFrameDefault+27672>, 0x7ffff7b7962e <_PyEval_EvalFrameDefault+29310>, 0x7ffff7a533eb <_PyEval_EvalFrameDefault-1175493>, 0x7ffff7a5555c <_PyEval_EvalFrameDefault-1166932>, 0x7ffff7a53304 <_PyEval_EvalFrameDefault-1175724>, 0x7ffff7b758ae <_PyEval_EvalFrameDefault+13566>, 0x7ffff7b7a396 <_PyEval_EvalFrameDefault+32742>, 0x7ffff7b7a32a <_PyEval_EvalFrameDefault+32634>, 0x7ffff7b72e70 <_PyEval_EvalFrameDefault+2752>, 0x7ffff7a5512e <_PyEval_EvalFrameDefault-1168002>, 0x7ffff7b7b51a <_PyEval_EvalFrameDefault+37226>, 0x7ffff7b7b3ef <_PyEval_EvalFrameDefault+36927>, 0x7ffff7b76680 <_PyEval_EvalFrameDefault+17104>, 0x7ffff7b7b1d2 <_PyEval_EvalFrameDefault+36386>, 0x7ffff7b7ac2b <_PyEval_EvalFrameDefault+34939>, 0x7ffff7b7a591 <_PyEval_EvalFrameDefault+33249>, 0x7ffff7b75b80 <_PyEval_EvalFrameDefault+14288>, 0x7ffff7b782f5 <_PyEval_EvalFrameDefault+24389>, 0x7ffff7b72e22 <_PyEval_EvalFrameDefault+2674>, 0x7ffff7b78379 <_PyEval_EvalFrameDefault+24521>, 0x7ffff7b72d27 <_PyEval_EvalFrameDefault+2423>, 0x7ffff7b768aa <_PyEval_EvalFrameDefault+17658>, 0x7ffff7b72fa9 <_PyEval_EvalFrameDefault+3065>, 0x7ffff7b7b310 <_PyEval_EvalFrameDefault+36704>, 0x7ffff7b79c87 <_PyEval_EvalFrameDefault+30935>, 0x7ffff7b7893a <_PyEval_EvalFrameDefault+25994>, 0x7ffff7b75928 <_PyEval_EvalFrameDefault+13688>, 0x7ffff7b7aaaa <_PyEval_EvalFrameDefault+34554>, 0x7ffff7b7857e <_PyEval_EvalFrameDefault+25038>, 0x7ffff7b7991c <_PyEval_EvalFrameDefault+30060>, 0x7ffff7b7a786 <_PyEval_EvalFrameDefault+33750>, 0x7ffff7b730d7 <_PyEval_EvalFrameDefault+3367>, 0x7ffff7b7a418 <_PyEval_EvalFrameDefault+32872>, 0x7ffff7b7705d <_PyEval_EvalFrameDefault+19629>, 0x7ffff7b76db2 <_PyEval_EvalFrameDefault+18946>, 0x7ffff7b79d96 <_PyEval_EvalFrameDefault+31206>, 0x7ffff7b79b55 <_PyEval_EvalFrameDefault+30629>, 0x7ffff7b78d7f <_PyEval_EvalFrameDefault+27087>, 0x7ffff7b7513e <_PyEval_EvalFrameDefault+11662>, 0x7ffff7b76ec4 <_PyEval_EvalFrameDefault+19220>, 0x7ffff7b783ee <_PyEval_EvalFrameDefault+24638>, 0x7ffff7b7af78 <_PyEval_EvalFrameDefault+35784>, 0x7ffff7b7aece <_PyEval_EvalFrameDefault+35614>, 0x7ffff7b759e7 <_PyEval_EvalFrameDefault+13879>, 0x7ffff7b74c97 <_PyEval_EvalFrameDefault+10471>, 0x7ffff7b76042 <_PyEval_EvalFrameDefault+15506>, 0x7ffff7b796c0 <_PyEval_EvalFrameDefault+29456>, 0x7ffff7b748f2 <_PyEval_EvalFrameDefault+9538>, 0x7ffff7b739a0 <_PyEval_EvalFrameDefault+5616>, 0x7ffff7b785fa <_PyEval_EvalFrameDefault+25162>, 0x7ffff7a52b72 <_PyEval_EvalFrameDefault-1177662>, 0x7ffff7b7ade7 <_PyEval_EvalFrameDefault+35383>, 0x7ffff7a5439d <_PyEval_EvalFrameDefault-1171475>, 0x7ffff7b7ae48 <_PyEval_EvalFrameDefault+35480>, 0x7ffff7b78cda <_PyEval_EvalFrameDefault+26922>, 0x7ffff7b7b622 <_PyEval_EvalFrameDefault+37490>, 0x7ffff7a548ce <_PyEval_EvalFrameDefault-1170146>, 0x7ffff7b76bfd <_PyEval_EvalFrameDefault+18509>, 0x7ffff7b73a81 <_PyEval_EvalFrameDefault+5841>, 0x7ffff7a546f2 <_PyEval_EvalFrameDefault-1170622>, 0x7ffff7b7b159 <_PyEval_EvalFrameDefault+36265>, 0x7ffff7b7b00f <_PyEval_EvalFrameDefault+35935>, 0x7ffff7b7494a <_PyEval_EvalFrameDefault+9626>, 0x7ffff7b72cd6 <_PyEval_EvalFrameDefault+2342>, 0x7ffff7b726bf <_PyEval_EvalFrameDefault+783>, 0x7ffff7b76317 <_PyEval_EvalFrameDefault+16231>, 0x7ffff7b7428b <_PyEval_EvalFrameDefault+7899>, 0x7ffff7b7a5f0 <_PyEval_EvalFrameDefault+33344>, 0x7ffff7b73ce7 <_PyEval_EvalFrameDefault+6455>, 0x7ffff7b725c6 <_PyEval_EvalFrameDefault+534>, 0x7ffff7b72c17 <_PyEval_EvalFrameDefault+2151>, 0x7ffff7b724a1 <_PyEval_EvalFrameDefault+241>, 0x7ffff7b78726 <_PyEval_EvalFrameDefault+25462>, 0x7ffff7b79c2b <_PyEval_EvalFrameDefault+30843>, 0x7ffff7b72a60 <_PyEval_EvalFrameDefault+1712>, 0x7ffff7b7b447 <_PyEval_EvalFrameDefault+37015>, 0x7ffff7a542dc <_PyEval_EvalFrameDefault-1171668>, 0x7ffff7b78a39 <_PyEval_EvalFrameDefault+26249>, 0x7ffff7b78777 <_PyEval_EvalFrameDefault+25543>, 0x7ffff7b7a14a <_PyEval_EvalFrameDefault+32154>, 0x7ffff7b769ec <_PyEval_EvalFrameDefault+17980>, 0x7ffff7b7906d <_PyEval_EvalFrameDefault+27837>, 0x7ffff7b7b241 <_PyEval_EvalFrameDefault+36497>, 0x7ffff7b72bb6 <_PyEval_EvalFrameDefault+2054>, 0x7ffff7b75279 <_PyEval_EvalFrameDefault+11977>, 0x7ffff7b74ea1 <_PyEval_EvalFrameDefault+10993>, 0x7ffff7b72c75 <_PyEval_EvalFrameDefault+2245>, 0x7ffff7b79e64 <_PyEval_EvalFrameDefault+31412>, 0x7ffff7b79ab6 <_PyEval_EvalFrameDefault+30470>, 0x7ffff7b73036 <_PyEval_EvalFrameDefault+3206>, 0x7ffff7b77529 <_PyEval_EvalFrameDefault+20857>, 0x7ffff7b771b9 <_PyEval_EvalFrameDefault+19977>, 0x7ffff7b76e69 <_PyEval_EvalFrameDefault+19129>, 0x7ffff7b7a88d <_PyEval_EvalFrameDefault+34013>, 0x7ffff7b7743a <_PyEval_EvalFrameDefault+20618>, 0x7ffff7b78f5a <_PyEval_EvalFrameDefault+27562>, 0x7ffff7b72539 <_PyEval_EvalFrameDefault+393>, 0x7ffff7b7408d <_PyEval_EvalFrameDefault+7389>, 0x7ffff7b746c9 <_PyEval_EvalFrameDefault+8985>, 0x7ffff7b7b5a0 <_PyEval_EvalFrameDefault+37360>, 0x7ffff7b77b2a <_PyEval_EvalFrameDefault+22394>, 0x7ffff7b755a7 <_PyEval_EvalFrameDefault+12791>, 0x7ffff7b7aa12 <_PyEval_EvalFrameDefault+34402>, 0x7ffff7b7a911 <_PyEval_EvalFrameDefault+34145>, 0x7ffff7b72622 <_PyEval_EvalFrameDefault+626>, 0x7ffff7a559c6 <_PyEval_EvalFrameDefault-1165802> , 0x7ffff7b7724a <_PyEval_EvalFrameDefault+20122>, 0x7ffff7b764e3 <_PyEval_EvalFrameDefault+16691>, 0x7ffff7b744ff <_PyEval_EvalFrameDefault+8527>, 0x7ffff7b779b3 <_PyEval_EvalFrameDefault+22019>, 0x7ffff7b73902 <_PyEval_EvalFrameDefault+5458>, 0x7ffff7b76151 <_PyEval_EvalFrameDefault+15777>, 0x7ffff7b75c97 <_PyEval_EvalFrameDefault+14567>, 0x7ffff7b74f1d <_PyEval_EvalFrameDefault+11117>, 0x7ffff7b76adc <_PyEval_EvalFrameDefault+18220>, 0x7ffff7b794db <_PyEval_EvalFrameDefault+28971>, 0x7ffff7b752f1 <_PyEval_EvalFrameDefault+12097>, 0x7ffff7b7440c <_PyEval_EvalFrameDefault+8284>, 0x7ffff7b7781d <_PyEval_EvalFrameDefault+21613>, 0x7ffff7b79128 <_PyEval_EvalFrameDefault+28024>, 0x7ffff7b755f5 <_PyEval_EvalFrameDefault+12869>, 0x7ffff7b76c39 <_PyEval_EvalFrameDefault+18569>, 0x7ffff7b74fd8 <_PyEval_EvalFrameDefault+11304>, 0x7ffff7b7410f <_PyEval_EvalFrameDefault+7519>, 0x7ffff7b749c6 <_PyEval_EvalFrameDefault+9750>, 0x7ffff7b73216 <_PyEval_EvalFrameDefault+3686>, 0x7ffff7b745b1 <_PyEval_EvalFrameDefault+8705>, 0x7ffff7b747aa <_PyEval_EvalFrameDefault+9210>, 0x7ffff7b778ed <_PyEval_EvalFrameDefault+21821>, 0x7ffff7b73b51 <_PyEval_EvalFrameDefault+6049>, 0x7ffff7b7634e <_PyEval_EvalFrameDefault+16286>, 0x7ffff7b75ea0 <_PyEval_EvalFrameDefault+15088>, 0x7ffff7b77e6a <_PyEval_EvalFrameDefault+23226>, 0x7ffff7b73dbf <_PyEval_EvalFrameDefault+6671>, 0x7ffff7b734b8 <_PyEval_EvalFrameDefault+4360>, 0x7ffff7b753b4 <_PyEval_EvalFrameDefault+12292>, 0x7ffff7b77a8a <_PyEval_EvalFrameDefault+22234>, 0x7ffff7b79974 <_PyEval_EvalFrameDefault+30148>, 0x7ffff7b7438a <_PyEval_EvalFrameDefault+8154>, 0x7ffff7b772a3 <_PyEval_EvalFrameDefault+20211>, 0x7ffff7b72eb6 <_PyEval_EvalFrameDefault+2822>, 0x7ffff7b75d69 <_PyEval_EvalFrameDefault+14777>, 0x7ffff7b77ff2 <_PyEval_EvalFrameDefault+23618>, 0x7ffff7b78218 <_PyEval_EvalFrameDefault+24168>, 0x7ffff7b7811a <_PyEval_EvalFrameDefault+23914>, 0x7ffff7b73f55 <_PyEval_EvalFrameDefault+7077>, 0x7ffff7b73fe6 <_PyEval_EvalFrameDefault+7222>, 0x7ffff7b76fd4 <_PyEval_EvalFrameDefault+19492>, 0x7ffff7b79441 <_PyEval_EvalFrameDefault+28817>, 0x7ffff7a522da <_PyEval_EvalFrameDefault-1179862>, 0x7ffff7b733a3 <_PyEval_EvalFrameDefault+4083>, 0x7ffff7b76827 <_PyEval_EvalFrameDefault+17527>, 0x7ffff7b73440 <_PyEval_EvalFrameDefault+4240>, 0x7ffff7b73ebf <_PyEval_EvalFrameDefault+6927>, 0x7ffff7b751be <_PyEval_EvalFrameDefault+11790>, 0x7ffff7b7ad71 <_PyEval_EvalFrameDefault+35265>, 0x7ffff7b773a6 <_PyEval_EvalFrameDefault+20470>, 0x7ffff7b77d49 <_PyEval_EvalFrameDefault+22937>, 0x7ffff7b742f0 <_PyEval_EvalFrameDefault+8000>, 0x7ffff7b77c58 <_PyEval_EvalFrameDefault+22696>, 0x7ffff7b72adf <_PyEval_EvalFrameDefault+1839>, 0x7ffff7b72d67 <_PyEval_EvalFrameDefault+2487>, 0x7ffff7b7ab33 <_PyEval_EvalFrameDefault+34691>, 0x7ffff7b78813 <_PyEval_EvalFrameDefault+25699>, 0x7ffff7b724f2 <_PyEval_EvalFrameDefault+322>, 0x7ffff7b726fa <_PyEval_EvalFrameDefault+842>, 0x7ffff7b754d8 <_PyEval_EvalFrameDefault+12584>, 0x7ffff7b76286 <_PyEval_EvalFrameDefault+16086>, 0x7ffff7b7a836 <_PyEval_EvalFrameDefault+33926>, 0x7ffff7b765ae <_PyEval_EvalFrameDefault+16894>, 0x7ffff7b770ef <_PyEval_EvalFrameDefault+19775>, 0x7ffff7b7766a <_PyEval_EvalFrameDefault+21178>, 0x7ffff7b731cd <_PyEval_EvalFrameDefault+3613>, 0x7ffff7b7620d <_PyEval_EvalFrameDefault+15965>, 0x7ffff7b78b5f <_PyEval_EvalFrameDefault+26543>, 0x7ffff7b75fea <_PyEval_EvalFrameDefault+15418>, 0x7ffff7b77bd0 <_PyEval_EvalFrameDefault+22560>...} word = word = #8 0x00007ffff7c4052b in PyEval_EvalCode (co=0x7fffe97651b0, globals=, locals=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:599 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> builtins = desc = {fc_globals = 0x7fffe9734500, fc_builtins = 0x7ffff76d5d00, fc_name = 0x7ffff7ed15f0 <_PyRuntime+31152>, fc_qualname = 0x7ffff7ed15f0 <_PyRuntime+31152>, fc_code = 0x7fffe97651b0, fc_defaults = 0x0, fc_kwdefaults = 0x0, fc_closure = 0x0} func = 0x7fffe9727240 res = #9 0x00007ffff7c628d0 in run_eval_code_obj (tstate=tstate@entry=0x7ffff7f0e2e0 <_PyRuntime+280224>, co=co@entry=0x7fffe97651b0, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1292 v = has_builtins = #10 0x00007ffff7c5cf33 in run_mod (mod=mod@entry=0x5555556130f0, filename=filename@entry=0x7fffe9756a30, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, flags=flags@entry=0x7fffffffde68, arena=arena@entry=0x7ffff7647cf0, interactive_src=0x0, generate_new_source=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1377 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> interactive_filename = co = 0x7fffe97651b0 v = #11 0x00007ffff7c7d016 in pyrun_file (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, start=start@entry=257, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, closeit=closeit@entry=1, flags=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1210 arena = 0x7ffff7647cf0 mod = ret = #12 0x00007ffff7c7c18f in _PyRun_SimpleFileObject (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:459 ret = main_module = 0x7fffe97076f0 dict = 0x7fffe9734500 set_file_name = 1 has_file = pyc = v = #13 0x00007ffff7c7bfb1 in _PyRun_AnyFileObject (fp=fp@entry=0x5555556069c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:77 decref_filename = 0 res = #14 0x00007ffff7c756b7 in pymain_run_file_obj (program_name=0x7fffe9734630, filename=0x7fffe9756a30, skip_source_first_line=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:357 fp = 0x5555556069c0 sb = {st_dev = 64770, st_ino = 319713036, st_nlink = 1, st_mode = 33188, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 430, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1718826771, tv_nsec = 28229381}, st_mtim = {tv_sec = 1718826762, tv_nsec = 618238214}, st_ctim = {tv_sec = 1718826762, tv_nsec = 625238206}, __glibc_reserved = {0, 0, 0}} cf = {cf_flags = 0, cf_feature_version = 13} run = fp = sb = cf = run = ch = #15 pymain_run_file (config=0x7ffff7ee09d8 <_PyRuntime+93592>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:376 filename = 0x7fffe9756a30 program_name = 0x7fffe9734630 res = filename = program_name = res = #16 pymain_run_python (exitcode=0x7fffffffde5c) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:639 main_importer_path = interp = 0x7ffff7edeaa0 <_PyRuntime+85600> config = 0x7ffff7ee09d8 <_PyRuntime+93592> path0 = 0x7fffe9759ca0 main_importer_path = interp = config = error = path0 = done = res = _tmp_op_ptr = _tmp_old_op = wstr = res = #17 Py_RunMain () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:718 exitcode = 0 #18 0x00007ffff7c2c89c in Py_BytesMain (argc=, argv=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:772 args = {argc = 2, use_bytes_argv = 1, bytes_argv = 0x7fffffffe0c8, wchar_argv = 0x0} #19 0x00007ffff7838248 in __libc_start_call_main (main=main@entry=0x555555555160
, argc=argc@entry=2, argv=argv@entry=0x7fffffffe0c8) at ../sysdeps/nptl/libc_start_call_main.h:58 self = result = unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488347336, 2062329613095650748, 2, 0, 140737354125312, 93824992247152, 2062329613152273852, 2062311233837319612}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x7fffffffe0c0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}} not_first_call = #20 0x00007ffff783830b in __libc_start_main_impl (main=0x555555555160
, argc=2, argv=0x7fffffffe0c8, init=, fini=, rtld_fini=, stack_end=0x7fffffffe0b8) at ../csu/libc-start.c:360 No locals. #21 0x0000555555555095 in _start () No symbol table info available. quit #0 framelocalsproxy_getitem (self=, key=0x7ffff7ed4b98 <_PyRuntime+44888>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/frameobject.c:117 #1 0x00007ffff7b5cb2b in dict_merge (interp=, a=, b=0x7fffe9613460, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3839 #2 dict_merge (interp=, a=, b=0x7fffe9613460, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3771 #3 0x00007ffff7ca5a72 in _PyEval_GetFrameLocals () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:2511 #4 0x00007ffff7b61abf in cfunction_vectorcall_NOARGS (func=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/cpython/methodobject.h:50 #5 0x00007ffff7b60dc7 in _PyObject_VectorcallTstate (tstate=0x7ffff7f0e2e0 <_PyRuntime+280224>, callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/internal/pycore_call.h:168 #6 PyObject_Vectorcall (callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/call.c:327 #7 0x00007ffff7b737f4 in _PyEval_EvalFrameDefault (tstate=, frame=, throwflag=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/generated_cases.c.h:813 #8 0x00007ffff7c4052b in PyEval_EvalCode (co=0x7fffe97651b0, globals=, locals=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:599 #9 0x00007ffff7c628d0 in run_eval_code_obj (tstate=tstate@entry=0x7ffff7f0e2e0 <_PyRuntime+280224>, co=co@entry=0x7fffe97651b0, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1292 #10 0x00007ffff7c5cf33 in run_mod (mod=mod@entry=0x555555612720, filename=filename@entry=0x7fffe9756a30, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, flags=flags@entry=0x7fffffffde68, arena=arena@entry=0x7ffff7647cf0, interactive_src=0x0, generate_new_source=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1377 #11 0x00007ffff7c7d016 in pyrun_file (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, start=start@entry=257, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, closeit=closeit@entry=1, flags=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1210 #12 0x00007ffff7c7c18f in _PyRun_SimpleFileObject (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:459 #13 0x00007ffff7c7bfb1 in _PyRun_AnyFileObject (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:77 #14 0x00007ffff7c756b7 in pymain_run_file_obj (program_name=0x7fffe9734630, filename=0x7fffe9756a30, skip_source_first_line=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:357 #15 pymain_run_file (config=0x7ffff7ee09d8 <_PyRuntime+93592>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:376 #16 pymain_run_python (exitcode=0x7fffffffde5c) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:639 #17 Py_RunMain () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:718 #18 0x00007ffff7c2c89c in Py_BytesMain (argc=, argv=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:772 #19 0x00007ffff7838248 in __libc_start_call_main (main=main@entry=0x555555555160
, argc=argc@entry=2, argv=argv@entry=0x7fffffffe0c8) at ../sysdeps/nptl/libc_start_call_main.h:58 #20 0x00007ffff783830b in __libc_start_main_impl (main=0x555555555160
, argc=2, argv=0x7fffffffe0c8, init=, fini=, rtld_fini=, stack_end=0x7fffffffe0b8) at ../csu/libc-start.c:360 #21 0x0000555555555095 in _start () #0 framelocalsproxy_getitem (self=, key=0x7ffff7ed4b98 <_PyRuntime+44888>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/frameobject.c:117 value = 0x8 i = frame = 0x7fffe95df6b0 co = 0x7fffe945a0b0 extra = #1 0x00007ffff7b5cb2b in dict_merge (interp=, a=, b=0x7fffe9613460, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3839 keys = iter = 0x7fffe9429f00 key = value = status = mp = other = res = slow_exit = mp = other = res = slow_exit = res = keys = iter = key = value = status = #2 dict_merge (interp=, a=, b=0x7fffe9613460, override=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/dictobject.c:3771 mp = other = res = 0 slow_exit = keys = iter = key = value = status = #3 0x00007ffff7ca5a72 in _PyEval_GetFrameLocals () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:2511 ret = 0x7fffe95e7780 op = dealloc = op = dealloc = op = dealloc = tstate = current_frame = locals = 0x7fffe9613460 #4 0x00007ffff7b61abf in cfunction_vectorcall_NOARGS (func=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/cpython/methodobject.h:50 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> nargs = meth = result = #5 0x00007ffff7b60dc7 in _PyObject_VectorcallTstate (tstate=0x7ffff7f0e2e0 <_PyRuntime+280224>, callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Include/internal/pycore_call.h:168 func = res = func = res = nargs = #6 PyObject_Vectorcall (callable=0x7ffff76c37e0, args=, nargsf=, kwnames=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Objects/call.c:327 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> #7 0x00007ffff7b737f4 in _PyEval_EvalFrameDefault (tstate=, frame=, throwflag=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/generated_cases.c.h:813 total_args = self = method = op = dealloc = self_or_null = callable = 0x7ffff76c37e0 this_instr = args = 0x7ffff7fbb170 res = opcode = oparg = entry_frame = {f_executable = 0x7ffff7ec1130 <_Py_NoneStruct>, previous = 0x0, f_funcobj = 0x7fffe97651b0, f_globals = 0x7fffe9734500, f_builtins = 0x7fffffffdba0, f_locals = 0xa7675715f612ed00, frame_obj = 0x7fffffffdbb0, instr_ptr = 0x7ffff7dafbc2 <_Py_INTERPRETER_TRAMPOLINE_INSTRUCTIONS+2>, stacktop = 0, return_offset = 0, owner = 3 '\003', localsplus = {0x7ffff7f0e2e0 <_PyRuntime+280224>}} next_instr = 0x7fffe945a198 stack_pointer = exception_unwind = dying = __func__ = "_PyEval_EvalFrameDefault" opcode_targets = {0x7ffff7a5590b <_PyEval_EvalFrameDefault-1165989>, 0x7ffff7a51d4c <_PyEval_EvalFrameDefault-1181284>, 0x7ffff7b78bdc <_PyEval_EvalFrameDefault+26668>, 0x7ffff7b79739 <_PyEval_EvalFrameDefault+29577>, 0x7ffff7b7674b <_PyEval_EvalFrameDefault+17307>, 0x7ffff7b75bb3 <_PyEval_EvalFrameDefault+14339>, 0x7ffff7a54d18 <_PyEval_EvalFrameDefault-1169048>, 0x7ffff7b78684 <_PyEval_EvalFrameDefault+25300>, 0x7ffff7b7a671 <_PyEval_EvalFrameDefault+33473>, 0x7ffff7b79a2b <_PyEval_EvalFrameDefault+30331>, 0x7ffff7a549ef <_PyEval_EvalFrameDefault-1169857>, 0x7ffff7b7b7aa <_PyEval_EvalFrameDefault+37882>, 0x7ffff7b7a714 <_PyEval_EvalFrameDefault+33636>, 0x7ffff7b7901d <_PyEval_EvalFrameDefault+27757>, 0x7ffff7b78fc8 <_PyEval_EvalFrameDefault+27672>, 0x7ffff7b7962e <_PyEval_EvalFrameDefault+29310>, 0x7ffff7a533eb <_PyEval_EvalFrameDefault-1175493>, 0x7ffff7a5555c <_PyEval_EvalFrameDefault-1166932>, 0x7ffff7a53304 <_PyEval_EvalFrameDefault-1175724>, 0x7ffff7b758ae <_PyEval_EvalFrameDefault+13566>, 0x7ffff7b7a396 <_PyEval_EvalFrameDefault+32742>, 0x7ffff7b7a32a <_PyEval_EvalFrameDefault+32634>, 0x7ffff7b72e70 <_PyEval_EvalFrameDefault+2752>, 0x7ffff7a5512e <_PyEval_EvalFrameDefault-1168002>, 0x7ffff7b7b51a <_PyEval_EvalFrameDefault+37226>, 0x7ffff7b7b3ef <_PyEval_EvalFrameDefault+36927>, 0x7ffff7b76680 <_PyEval_EvalFrameDefault+17104>, 0x7ffff7b7b1d2 <_PyEval_EvalFrameDefault+36386>, 0x7ffff7b7ac2b <_PyEval_EvalFrameDefault+34939>, 0x7ffff7b7a591 <_PyEval_EvalFrameDefault+33249>, 0x7ffff7b75b80 <_PyEval_EvalFrameDefault+14288>, 0x7ffff7b782f5 <_PyEval_EvalFrameDefault+24389>, 0x7ffff7b72e22 <_PyEval_EvalFrameDefault+2674>, 0x7ffff7b78379 <_PyEval_EvalFrameDefault+24521>, 0x7ffff7b72d27 <_PyEval_EvalFrameDefault+2423>, 0x7ffff7b768aa <_PyEval_EvalFrameDefault+17658>, 0x7ffff7b72fa9 <_PyEval_EvalFrameDefault+3065>, 0x7ffff7b7b310 <_PyEval_EvalFrameDefault+36704>, 0x7ffff7b79c87 <_PyEval_EvalFrameDefault+30935>, 0x7ffff7b7893a <_PyEval_EvalFrameDefault+25994>, 0x7ffff7b75928 <_PyEval_EvalFrameDefault+13688>, 0x7ffff7b7aaaa <_PyEval_EvalFrameDefault+34554>, 0x7ffff7b7857e <_PyEval_EvalFrameDefault+25038>, 0x7ffff7b7991c <_PyEval_EvalFrameDefault+30060>, 0x7ffff7b7a786 <_PyEval_EvalFrameDefault+33750>, 0x7ffff7b730d7 <_PyEval_EvalFrameDefault+3367>, 0x7ffff7b7a418 <_PyEval_EvalFrameDefault+32872>, 0x7ffff7b7705d <_PyEval_EvalFrameDefault+19629>, 0x7ffff7b76db2 <_PyEval_EvalFrameDefault+18946>, 0x7ffff7b79d96 <_PyEval_EvalFrameDefault+31206>, 0x7ffff7b79b55 <_PyEval_EvalFrameDefault+30629>, 0x7ffff7b78d7f <_PyEval_EvalFrameDefault+27087>, 0x7ffff7b7513e <_PyEval_EvalFrameDefault+11662>, 0x7ffff7b76ec4 <_PyEval_EvalFrameDefault+19220>, 0x7ffff7b783ee <_PyEval_EvalFrameDefault+24638>, 0x7ffff7b7af78 <_PyEval_EvalFrameDefault+35784>, 0x7ffff7b7aece <_PyEval_EvalFrameDefault+35614>, 0x7ffff7b759e7 <_PyEval_EvalFrameDefault+13879>, 0x7ffff7b74c97 <_PyEval_EvalFrameDefault+10471>, 0x7ffff7b76042 <_PyEval_EvalFrameDefault+15506>, 0x7ffff7b796c0 <_PyEval_EvalFrameDefault+29456>, 0x7ffff7b748f2 <_PyEval_EvalFrameDefault+9538>, 0x7ffff7b739a0 <_PyEval_EvalFrameDefault+5616>, 0x7ffff7b785fa <_PyEval_EvalFrameDefault+25162>, 0x7ffff7a52b72 <_PyEval_EvalFrameDefault-1177662>, 0x7ffff7b7ade7 <_PyEval_EvalFrameDefault+35383>, 0x7ffff7a5439d <_PyEval_EvalFrameDefault-1171475>, 0x7ffff7b7ae48 <_PyEval_EvalFrameDefault+35480>, 0x7ffff7b78cda <_PyEval_EvalFrameDefault+26922>, 0x7ffff7b7b622 <_PyEval_EvalFrameDefault+37490>, 0x7ffff7a548ce <_PyEval_EvalFrameDefault-1170146>, 0x7ffff7b76bfd <_PyEval_EvalFrameDefault+18509>, 0x7ffff7b73a81 <_PyEval_EvalFrameDefault+5841>, 0x7ffff7a546f2 <_PyEval_EvalFrameDefault-1170622>, 0x7ffff7b7b159 <_PyEval_EvalFrameDefault+36265>, 0x7ffff7b7b00f <_PyEval_EvalFrameDefault+35935>, 0x7ffff7b7494a <_PyEval_EvalFrameDefault+9626>, 0x7ffff7b72cd6 <_PyEval_EvalFrameDefault+2342>, 0x7ffff7b726bf <_PyEval_EvalFrameDefault+783>, 0x7ffff7b76317 <_PyEval_EvalFrameDefault+16231>, 0x7ffff7b7428b <_PyEval_EvalFrameDefault+7899>, 0x7ffff7b7a5f0 <_PyEval_EvalFrameDefault+33344>, 0x7ffff7b73ce7 <_PyEval_EvalFrameDefault+6455>, 0x7ffff7b725c6 <_PyEval_EvalFrameDefault+534>, 0x7ffff7b72c17 <_PyEval_EvalFrameDefault+2151>, 0x7ffff7b724a1 <_PyEval_EvalFrameDefault+241>, 0x7ffff7b78726 <_PyEval_EvalFrameDefault+25462>, 0x7ffff7b79c2b <_PyEval_EvalFrameDefault+30843>, 0x7ffff7b72a60 <_PyEval_EvalFrameDefault+1712>, 0x7ffff7b7b447 <_PyEval_EvalFrameDefault+37015>, 0x7ffff7a542dc <_PyEval_EvalFrameDefault-1171668>, 0x7ffff7b78a39 <_PyEval_EvalFrameDefault+26249>, 0x7ffff7b78777 <_PyEval_EvalFrameDefault+25543>, 0x7ffff7b7a14a <_PyEval_EvalFrameDefault+32154>, 0x7ffff7b769ec <_PyEval_EvalFrameDefault+17980>, 0x7ffff7b7906d <_PyEval_EvalFrameDefault+27837>, 0x7ffff7b7b241 <_PyEval_EvalFrameDefault+36497>, 0x7ffff7b72bb6 <_PyEval_EvalFrameDefault+2054>, 0x7ffff7b75279 <_PyEval_EvalFrameDefault+11977>, 0x7ffff7b74ea1 <_PyEval_EvalFrameDefault+10993>, 0x7ffff7b72c75 <_PyEval_EvalFrameDefault+2245>, 0x7ffff7b79e64 <_PyEval_EvalFrameDefault+31412>, 0x7ffff7b79ab6 <_PyEval_EvalFrameDefault+30470>, 0x7ffff7b73036 <_PyEval_EvalFrameDefault+3206>, 0x7ffff7b77529 <_PyEval_EvalFrameDefault+20857>, 0x7ffff7b771b9 <_PyEval_EvalFrameDefault+19977>, 0x7ffff7b76e69 <_PyEval_EvalFrameDefault+19129>, 0x7ffff7b7a88d <_PyEval_EvalFrameDefault+34013>, 0x7ffff7b7743a <_PyEval_EvalFrameDefault+20618>, 0x7ffff7b78f5a <_PyEval_EvalFrameDefault+27562>, 0x7ffff7b72539 <_PyEval_EvalFrameDefault+393>, 0x7ffff7b7408d <_PyEval_EvalFrameDefault+7389>, 0x7ffff7b746c9 <_PyEval_EvalFrameDefault+8985>, 0x7ffff7b7b5a0 <_PyEval_EvalFrameDefault+37360>, 0x7ffff7b77b2a <_PyEval_EvalFrameDefault+22394>, 0x7ffff7b755a7 <_PyEval_EvalFrameDefault+12791>, 0x7ffff7b7aa12 <_PyEval_EvalFrameDefault+34402>, 0x7ffff7b7a911 <_PyEval_EvalFrameDefault+34145>, 0x7ffff7b72622 <_PyEval_EvalFrameDefault+626>, 0x7ffff7a559c6 <_PyEval_EvalFrameDefault-1165802> , 0x7ffff7b7724a <_PyEval_EvalFrameDefault+20122>, 0x7ffff7b764e3 <_PyEval_EvalFrameDefault+16691>, 0x7ffff7b744ff <_PyEval_EvalFrameDefault+8527>, 0x7ffff7b779b3 <_PyEval_EvalFrameDefault+22019>, 0x7ffff7b73902 <_PyEval_EvalFrameDefault+5458>, 0x7ffff7b76151 <_PyEval_EvalFrameDefault+15777>, 0x7ffff7b75c97 <_PyEval_EvalFrameDefault+14567>, 0x7ffff7b74f1d <_PyEval_EvalFrameDefault+11117>, 0x7ffff7b76adc <_PyEval_EvalFrameDefault+18220>, 0x7ffff7b794db <_PyEval_EvalFrameDefault+28971>, 0x7ffff7b752f1 <_PyEval_EvalFrameDefault+12097>, 0x7ffff7b7440c <_PyEval_EvalFrameDefault+8284>, 0x7ffff7b7781d <_PyEval_EvalFrameDefault+21613>, 0x7ffff7b79128 <_PyEval_EvalFrameDefault+28024>, 0x7ffff7b755f5 <_PyEval_EvalFrameDefault+12869>, 0x7ffff7b76c39 <_PyEval_EvalFrameDefault+18569>, 0x7ffff7b74fd8 <_PyEval_EvalFrameDefault+11304>, 0x7ffff7b7410f <_PyEval_EvalFrameDefault+7519>, 0x7ffff7b749c6 <_PyEval_EvalFrameDefault+9750>, 0x7ffff7b73216 <_PyEval_EvalFrameDefault+3686>, 0x7ffff7b745b1 <_PyEval_EvalFrameDefault+8705>, 0x7ffff7b747aa <_PyEval_EvalFrameDefault+9210>, 0x7ffff7b778ed <_PyEval_EvalFrameDefault+21821>, 0x7ffff7b73b51 <_PyEval_EvalFrameDefault+6049>, 0x7ffff7b7634e <_PyEval_EvalFrameDefault+16286>, 0x7ffff7b75ea0 <_PyEval_EvalFrameDefault+15088>, 0x7ffff7b77e6a <_PyEval_EvalFrameDefault+23226>, 0x7ffff7b73dbf <_PyEval_EvalFrameDefault+6671>, 0x7ffff7b734b8 <_PyEval_EvalFrameDefault+4360>, 0x7ffff7b753b4 <_PyEval_EvalFrameDefault+12292>, 0x7ffff7b77a8a <_PyEval_EvalFrameDefault+22234>, 0x7ffff7b79974 <_PyEval_EvalFrameDefault+30148>, 0x7ffff7b7438a <_PyEval_EvalFrameDefault+8154>, 0x7ffff7b772a3 <_PyEval_EvalFrameDefault+20211>, 0x7ffff7b72eb6 <_PyEval_EvalFrameDefault+2822>, 0x7ffff7b75d69 <_PyEval_EvalFrameDefault+14777>, 0x7ffff7b77ff2 <_PyEval_EvalFrameDefault+23618>, 0x7ffff7b78218 <_PyEval_EvalFrameDefault+24168>, 0x7ffff7b7811a <_PyEval_EvalFrameDefault+23914>, 0x7ffff7b73f55 <_PyEval_EvalFrameDefault+7077>, 0x7ffff7b73fe6 <_PyEval_EvalFrameDefault+7222>, 0x7ffff7b76fd4 <_PyEval_EvalFrameDefault+19492>, 0x7ffff7b79441 <_PyEval_EvalFrameDefault+28817>, 0x7ffff7a522da <_PyEval_EvalFrameDefault-1179862>, 0x7ffff7b733a3 <_PyEval_EvalFrameDefault+4083>, 0x7ffff7b76827 <_PyEval_EvalFrameDefault+17527>, 0x7ffff7b73440 <_PyEval_EvalFrameDefault+4240>, 0x7ffff7b73ebf <_PyEval_EvalFrameDefault+6927>, 0x7ffff7b751be <_PyEval_EvalFrameDefault+11790>, 0x7ffff7b7ad71 <_PyEval_EvalFrameDefault+35265>, 0x7ffff7b773a6 <_PyEval_EvalFrameDefault+20470>, 0x7ffff7b77d49 <_PyEval_EvalFrameDefault+22937>, 0x7ffff7b742f0 <_PyEval_EvalFrameDefault+8000>, 0x7ffff7b77c58 <_PyEval_EvalFrameDefault+22696>, 0x7ffff7b72adf <_PyEval_EvalFrameDefault+1839>, 0x7ffff7b72d67 <_PyEval_EvalFrameDefault+2487>, 0x7ffff7b7ab33 <_PyEval_EvalFrameDefault+34691>, 0x7ffff7b78813 <_PyEval_EvalFrameDefault+25699>, 0x7ffff7b724f2 <_PyEval_EvalFrameDefault+322>, 0x7ffff7b726fa <_PyEval_EvalFrameDefault+842>, 0x7ffff7b754d8 <_PyEval_EvalFrameDefault+12584>, 0x7ffff7b76286 <_PyEval_EvalFrameDefault+16086>, 0x7ffff7b7a836 <_PyEval_EvalFrameDefault+33926>, 0x7ffff7b765ae <_PyEval_EvalFrameDefault+16894>, 0x7ffff7b770ef <_PyEval_EvalFrameDefault+19775>, 0x7ffff7b7766a <_PyEval_EvalFrameDefault+21178>, 0x7ffff7b731cd <_PyEval_EvalFrameDefault+3613>, 0x7ffff7b7620d <_PyEval_EvalFrameDefault+15965>, 0x7ffff7b78b5f <_PyEval_EvalFrameDefault+26543>, 0x7ffff7b75fea <_PyEval_EvalFrameDefault+15418>, 0x7ffff7b77bd0 <_PyEval_EvalFrameDefault+22560>...} word = word = #8 0x00007ffff7c4052b in PyEval_EvalCode (co=0x7fffe97651b0, globals=, locals=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/ceval.c:599 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> builtins = desc = {fc_globals = 0x7fffe9734500, fc_builtins = 0x7ffff76d5d00, fc_name = 0x7ffff7ed15f0 <_PyRuntime+31152>, fc_qualname = 0x7ffff7ed15f0 <_PyRuntime+31152>, fc_code = 0x7fffe97651b0, fc_defaults = 0x0, fc_kwdefaults = 0x0, fc_closure = 0x0} func = 0x7ffff76fd4e0 res = #9 0x00007ffff7c628d0 in run_eval_code_obj (tstate=tstate@entry=0x7ffff7f0e2e0 <_PyRuntime+280224>, co=co@entry=0x7fffe97651b0, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1292 v = has_builtins = #10 0x00007ffff7c5cf33 in run_mod (mod=mod@entry=0x555555612720, filename=filename@entry=0x7fffe9756a30, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, flags=flags@entry=0x7fffffffde68, arena=arena@entry=0x7ffff7647cf0, interactive_src=0x0, generate_new_source=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1377 tstate = 0x7ffff7f0e2e0 <_PyRuntime+280224> interactive_filename = co = 0x7fffe97651b0 v = #11 0x00007ffff7c7d016 in pyrun_file (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, start=start@entry=257, globals=globals@entry=0x7fffe9734500, locals=locals@entry=0x7fffe9734500, closeit=closeit@entry=1, flags=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:1210 arena = 0x7ffff7647cf0 mod = ret = #12 0x00007ffff7c7c18f in _PyRun_SimpleFileObject (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:459 ret = main_module = 0x7fffe97076f0 dict = 0x7fffe9734500 set_file_name = 1 has_file = pyc = v = #13 0x00007ffff7c7bfb1 in _PyRun_AnyFileObject (fp=fp@entry=0x5555555815c0, filename=filename@entry=0x7fffe9756a30, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffde68) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Python/pythonrun.c:77 decref_filename = 0 res = #14 0x00007ffff7c756b7 in pymain_run_file_obj (program_name=0x7fffe9734630, filename=0x7fffe9756a30, skip_source_first_line=0) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:357 fp = 0x5555555815c0 sb = {st_dev = 64770, st_ino = 302687996, st_nlink = 1, st_mode = 33188, st_uid = 1000, st_gid = 1000, __pad0 = 0, st_rdev = 0, st_size = 392, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1718827209, tv_nsec = 152769371}, st_mtim = {tv_sec = 1718827204, tv_nsec = 111774661}, st_ctim = {tv_sec = 1718827204, tv_nsec = 119774653}, __glibc_reserved = {0, 0, 0}} cf = {cf_flags = 0, cf_feature_version = 13} run = fp = sb = cf = run = ch = #15 pymain_run_file (config=0x7ffff7ee09d8 <_PyRuntime+93592>) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:376 filename = 0x7fffe9756a30 program_name = 0x7fffe9734630 res = filename = program_name = res = #16 pymain_run_python (exitcode=0x7fffffffde5c) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:639 main_importer_path = interp = 0x7ffff7edeaa0 <_PyRuntime+85600> config = 0x7ffff7ee09d8 <_PyRuntime+93592> path0 = 0x7fffe9759ca0 main_importer_path = interp = config = error = path0 = done = res = _tmp_op_ptr = _tmp_old_op = wstr = res = #17 Py_RunMain () at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:718 exitcode = 0 #18 0x00007ffff7c2c89c in Py_BytesMain (argc=, argv=) at /usr/src/debug/python3.13-3.13.0~b2-3.fc41.x86_64/Modules/main.c:772 args = {argc = 2, use_bytes_argv = 1, bytes_argv = 0x7fffffffe0c8, wchar_argv = 0x0} #19 0x00007ffff7838248 in __libc_start_call_main (main=main@entry=0x555555555160
, argc=argc@entry=2, argv=argv@entry=0x7fffffffe0c8) at ../sysdeps/nptl/libc_start_call_main.h:58 self = result = unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488347336, -5186364730400193682, 2, 0, 140737354125312, 93824992247152, -5186364729089473682, -5186382907729525906}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x7fffffffe0c0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}} not_first_call = #20 0x00007ffff783830b in __libc_start_main_impl (main=0x555555555160
, argc=2, argv=0x7fffffffe0c8, init=, fini=, rtld_fini=, stack_end=0x7fffffffe0b8) at ../csu/libc-start.c:360 No locals. #21 0x0000555555555095 in _start () No symbol table info available. ```

Should be reliably reproducible in a fresh fedora:rawhide container.

I suspect that some changes in 3.13 weren't compatible with the way kgb works and require corresponding fixes here. I suppose this could be a Python bug instead, but even in that case I won't be able to debug that and will need your help.

chipx86 commented 1 week ago

Thanks for the report! Shame this is busted...

My initial hunch is that it has to do with the new locals() changes (https://peps.python.org/pep-0667/). Of course, it could be something else (JIT stuff, maybe?).

I'm going to need to spend some time figuring out exactly how this would impact bytecode mutation, and whether a workaround is possible.

chipx86 commented 1 week ago

Yeah, it's locals handling. Any call to locals() within our compiled function breaks. This indicates a problem building our CodeType, which may help narrow down the cause.

chipx86 commented 1 week ago

Testing a fix.

chipx86 commented 1 week ago

Can you test the attached patch locally?

0001-Fix-a-crash-when-accessing-locals-on-Python-3.13.patch

alebastr commented 1 week ago

Thanks!

The patch works for me both locally and in the package build environment.

chipx86 commented 1 week ago

Thanks for testing that so quickly!

I want to hold off on any release until 3.13 is further along (we haven't begun any official testing on 3.13 yet), in case anything regresses from this fix. We'll want to test it a while for existing releases. Would this be a blocker for you?

alebastr commented 1 week ago

That is fine, I'll just skip the testcase in the RBTools package spec and reenable it when we get a fix. No other packages were affected so we can wait.

chipx86 commented 4 days ago

Sounds good. Out of curiosity, is this for a Linux distro, or in-house build management?

alebastr commented 4 days ago

It's for Fedora Linux. I took ownership of the RBTools package a few months ago.