Message71095
| Author |
ajaksu2 |
| Recipients |
ajaksu2, amaury.forgeotdarc, barry, benjamin.peterson, brett.cannon, nnorwitz, theller |
| Date |
2008年08月13日.19:49:33 |
| SpamBayes Score |
0.0004823941 |
| Marked as misclassified |
No |
| Message-id |
<1218656975.86.0.667836320722.issue2548@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
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. |
|