Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:error': 0.03; 'subject:Python': 0.06; 'error:': 0.07; 'interpreter.': 0.07; 'logic': 0.09; 'overflow': 0.09; 'runtime': 0.09; 'stack,': 0.09; 'try:': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'def': 0.12; 'bug': 0.12; '2.7': 0.14; 'thread': 0.14; 'benjamin': 0.16; 'cc:name:python list': 0.16; 'handler,': 0.16; 'overflow.': 0.16; 'somehow.': 0.16; 'sure.': 0.16; 'exception': 0.16; 'wrote:': 0.18; 'stack': 0.19; 'separate': 0.22; 'cc:addr:python.org': 0.22; '2.x': 0.24; 'cc:2**0': 0.24; 'pass': 0.26; 'header:In-Reply- To:1': 0.27; 'am,': 0.29; 'errors': 0.30; 'message- id:@mail.gmail.com': 0.30; "i'm": 0.30; 'gives': 0.31; '3.2': 0.31; 'depth': 0.31; 'terminate': 0.31; 'file': 0.32; '(most': 0.33; 'except': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'leads': 0.36; 'application': 0.37; 'list.': 0.37; 'recent': 0.39; 'expect': 0.39; 'dave': 0.60; 'maximum': 0.63; 'more': 0.64; 'different': 0.65; 'contact': 0.67; 'unusual': 0.74; 'oscar': 0.84; 'presumably': 0.84; 'angel': 0.91; 'recover': 0.91; 'exceeded': 0.97; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=lOYpWZYc0oRcJwuaIh1dMvnJlNiprMie3Po84d4VMMA=; b=0THcCyA6YdPSPpriEc8iSOkNoQPBM7sPPFsSZhffT9N40/heGCmAd6un3MV5bwo2RE 4lDW3n6bUeOSitcScc9roUcC8E2hxuv3SvPfhSalOSrXdcv/vpR+LjVIBI9UNAL1tdK9 A0cnOEJTA+IHCxo2AWFkWe6esQ09+8BDk461XcpPzrCorHMAjKBwWr9z9l8QsKsPUlQh t9Kd0QoshIyLBBTwCgvw+quziSOVFQpULvjZh+WMBlbFy8sS6tYlrOXTyyHGaB6bqdg2 4iPuneZ6j+HP7R/LWMFD60LmV7HFdds7xqnkIYXuAHdDg8XSL0G4Ziaumsd9nhy1LsA1 zK1g== X-Received: by 10.52.165.99 with SMTP id yx3mr1590845vdb.34.1369840698239; Wed, 29 May 2013 08:18:18 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <51A5FC7D.8080202@davea.name> References: <51A5FC7D.8080202@davea.name> From: Oscar Benjamin Date: Wed, 29 May 2013 16:17:58 +0100 Subject: Re: Fatal Python error To: Dave Angel Content-Type: text/plain; charset=ISO-8859-1 Cc: Python List X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 80 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1369840706 news.xs4all.nl 15942 [2001:888:2000:d::a6]:37094 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:46390 On 29 May 2013 14:02, Dave Angel wrote: > On 05/29/2013 08:45 AM, Oscar Benjamin wrote: > > More likely a bug in the 2.x interpreter. Once inside an exception handler, > that frame must be held somehow. If not on the stack, then in some separate > list. So the logic will presumably fill memory, it just may take longer on > 2.x . I'm not so sure. The following gives the same behaviour in 2.7, 3.2 and 3.3: $ cat tmp.py def loop(): loop() loop() $ py -3.2 tmp.py Traceback (most recent call last): File "tmp.py", line 4, in loop() File "tmp.py", line 2, in loop loop() File "tmp.py", line 2, in loop loop() File "tmp.py", line 2, in loop loop() File "tmp.py", line 2, in loop ... However the following leads to a RuntimeError in 2.7 but different stack overflow errors in 3.2 and 3.3: $ cat tmp.py def loop(): try: (lambda: None)() except RuntimeError: pass loop() loop() $ py -2.7 tmp.py Traceback (most recent call last): File "tmp.py", line 8, in loop() File "tmp.py", line 6, in loop loop() File "tmp.py", line 6, in loop loop() File "tmp.py", line 6, in loop loop() File "tmp.py", line 6, in loop ... RuntimeError: maximum recursion depth exceeded $ py -3.2 tmp.py Fatal Python error: Cannot recover from stack overflow. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. $ py -3.3 tmp.py Fatal Python error: Cannot recover from stack overflow. Current thread 0x000005c4: File "tmp.py", line 3 in loop File "tmp.py", line 6 in loop File "tmp.py", line 6 in loop File "tmp.py", line 6 in loop File "tmp.py", line 6 in loop File "tmp.py", line 6 in loop File "tmp.py", line 6 in loop ... I would expect this to give "RuntimeError: maximum recursion depth exceeded" in all three cases. Oscar