classification
Title: Leak when creating certain classes that subclass ABCs
Type: resource usage Stage:
Components: Interpreter Core, Library (Lib) Versions: Python 2.6
process
Status: closed Resolution: duplicate
Dependencies: Superseder: ABC caches should use weak refs
View: 2521
Assigned To: Nosy List: stutzbach
Priority: normal Keywords:

Created on 2010-02-26 02:17 by stutzbach, last changed 2010-02-26 02:46 by benjamin.peterson. This issue is now closed.

Files
File name Uploaded Description Edit
leak.py stutzbach, 2010-02-26 02:17 Leak objects
Messages (1)
msg100132 - (view) Author: Daniel Stutzbach (stutzbach) (Python committer) Date: 2010-02-26 02:17
Attached is a minimal example.  It has a function called leak().  The end of the script calls that function, runs the garbage collector, and prints out the number of objects in the system.  In Python 2.6, the number of objects increases after each iteration of the loop.  In Python 3.1, the number of objects remains fixed after the second iteration.  I don't have a Python 2.7 branch handy to test.

The problem could lie in the C code or perhaps ABCMeta is keeping a reference?  I'm not sure.

Cashew:~$ python2.6 leak.py
4842
4850
4858
4866
4874
4882
4890
4898
4906
4914

Cashew:~$ python3.1 leak.py
4286
4273
4273
4273
4273
4273
4273
4273
4273
4273
History
Date User Action Args
2010-02-26 02:46:08benjamin.petersonsetstatus: open -> closed
resolution: duplicate
superseder: ABC caches should use weak refs
2010-02-26 02:17:52stutzbachcreate