
rdmurray at bitdance
Nov 17, 2009, 5:40 AM
Post #2 of 3
(623 views)
Permalink
|
|
Re: new unbounded memory leak in exception handling?
[In reply to]
|
|
On Tue, 17 Nov 2009 at 10:31, Greg Hewgill wrote: > I've constructed an example program that does not leak memory in Python > 2.x, but causes unbounded memory allocation in Python 3.1. Here is the > code: > > import gc > import sys > > class E(Exception): > def __init__(self, fn): > self.fn = fn > def call(self): > self.fn() > > def f(): > raise E(f) > > a = E(f) > while True: > print(len(gc.get_objects())) > try: > a.call() > except E: > # get exception value in a python2/3 portable way > a = sys.exc_info()[1] > > Every time through the loop, the length of gc.get_objects() increases > by 7 under Python 3.1. I believe this is a regression error, since > Python 2.x does not exhibit the same behaviour. > > Can anybody confirm this? I think you want to take a look at PEP 3134. And then please file a doc bug to have someone update the documentation of sys.exc_info, since the advice in the warning box is no longer valid in Python 3. --David (RDM) _______________________________________________ Python-Dev mailing list Python-Dev [at] python http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/list-python-dev%40lists.gossamer-threads.com
|