Message71107
On Wed, Aug 13, 2008 at 12:49 PM, Daniel Diniz <report@bugs.python.org> wrote:
>
> Daniel Diniz <ajaksu@gmail.com> added the comment:
>
> 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.
>
If I remember correctly, that is on purpose as normalizing the
exception could lead to the stack being blown again. But this totally
off of memory, so I could be wrong. |
|
Date |
User |
Action |
Args |
2008-08-14 02:36:44 | brett.cannon | set | recipients:
+ brett.cannon, barry, nnorwitz, theller, amaury.forgeotdarc, ajaksu2, benjamin.peterson |
2008-08-14 02:36:43 | brett.cannon | link | issue2548 messages |
2008-08-14 02:36:42 | brett.cannon | create | |
|