◐ Shell
clean mode source ↗

Runaway recursion on 3.13 and higher for _PY_FRAME_GENERAL

Bug report

Bug description:

Reported here https://discuss.python.org/t/infinite-recursion/88900

def foo(depth = None):
    print(foo.count)
    foo.count  = 1
    return foo()

foo.count = 1
print(foo())

The problem is that normal Calls check the recursion limit remaining, but _PY_FRAME_GENERAL does not.

I'm hesitant to backport the fix to 3.13, as it might break existing code.

CPython versions tested on:

CPython main branch, 3.13

Operating systems tested on:

No response

Linked PRs