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

noreply@sourceforge.net noreply@sourceforge.net
Mon, 22 Oct 2001 12:12:49 -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: Open Resolution: None Priority: 5 Submitted By: Tim Peters (tim_one) Assigned to: Nobody/Anonymous (nobody) 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.


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