◐ Shell
clean mode source ↗

Message 71095 - Python tracker

FWIW, rev58032 introduced this:
    tstate = PyThreadState_GET();
    if (++tstate->recursion_depth > Py_GetRecursionLimit()) {
        --tstate->recursion_depth;
        PyErr_SetObject(PyExc_RuntimeError, PyExc_RecursionErrorInst);
        return;
    }
above this line: 
    PyErr_NormalizeException(exc, val, tb);

Contrary to (what I understand from) Amaury's analysis, ISTM that the
call to PyErr_SetObject is the problem, as after the recursion limit is
hit PyErr_NormalizeException isn't called again.

Commenting off the PyErr_SetObject line suppresses the "undetected
errors" and passes the unittests (including the infinite recursion
crashers removed in that rev). I have no idea about the problems it may
cause, though.