[Python-bugs-list] [ python-Bugs-473753 ] Plug sys.exc_info() leaks

noreply@sourceforge.net noreply@sourceforge.net
Fri, 26 Oct 2001 07:24:39 -0700


Bugs item #473753, was opened at 2001-10-22 12:12
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=473753&group_id=5470

Category: Python Interpreter Core
Group: None
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Tim Peters (tim_one)
Assigned to: Jeremy Hylton (jhylton)
Summary: Plug sys.exc_info() leaks

Initial Comment:
As the Library manual has warned for years, this kind 
of program leaks bigtime:

import sys
def f():
.    try:
.        1 / 0
.    except ZeroDivisionError:
.        err = sys.exc_info()

while 1:
.    f()

because err[-1] is a traceback object, from which f's 
frame can be reached, from which we can get back 
to 'err'.

2.2 added frames to gc (thanks to NeilS), but this 
example still leaks.  That's at best an embarrassing 
trap, and it just popped up again in Zope's testing 
framework.  Best guess is that a cure amounts to 
adding traceback objects to gc too, although I haven't 
tried that so am not sure.

----------------------------------------------------------------------

>Comment By: Jeremy Hylton (jhylton)
Date: 2001-10-26 07:24

Message:
Logged In: YES 
user_id=31392

Fixed in rev 2.34 of traceback.c.


----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=105470&aid=473753&group_id=5470