[Python-Dev] 2.4 & 2.5 beta 3 crash

Dino Viehland dinov at exchange.microsoft.com
Wed Aug 16 19:49:22 CEST 2006


IronPython actually enables / disables stack overflow checking through either a command line option or by calling sys.setrecursionlimit.  By default we have no recursion limit.

Without those command line options we'll end up having the CLR throw an unrecoverable stack overflow exception (and the process will be terminated).  It's a little bit better than a seg fault, but not much.  With stack overflow checking enabled we'll actually catch the recursion for this and throw a RuntimeError stating maximum recursion depth reached.

-----Original Message-----
From: Josiah Carlson [mailto:jcarlson at uci.edu]
Sent: Wednesday, August 16, 2006 10:11 AM
To: Dino Viehland; python-dev at python.org
Subject: Re: [Python-Dev] 2.4 & 2.5 beta 3 crash


Dino Viehland <dinov at exchange.microsoft.com> wrote:
>
> We've been working on fixing some exception handling bugs in
> IronPython where we differ from CPython.  Along the way we ran into
> this issue which causes CPython to crash when the code below is run.
> It crashes on both 2.4 and 2.5 beta 3.  The code's technically
> illegal, but it probably shouldn't crash either :)

> def test():
>     for abc in range(10):
>         try: pass
>         finally:
>             try:
>                 continue
>             except:
>                 pass
>
>
> test()

It also reliably crashes 2.3, though I don't see anything in there as being illegal, but maybe I don't understand the langauge as well as I think I do.

Note that there is another segfaulting bug in CPython with regards to threads that was recently closed, but which is still a problem:
http://python.org/sf/780714

Does IronPython survive in that case?


 - Josiah



More information about the Python-Dev mailing list