[Python-Dev] [Python-checkins] Daily reference leaks (d7e490db8d54): sum=61494 (original) (raw)

Benjamin Peterson benjamin at python.org
Tue Oct 20 23:23:22 EDT 2015


On Tue, Oct 20, 2015, at 15:57, Antoine Pitrou wrote:

> These leaks have been here a while. Anyone know the cause? > > On Tue, 20 Oct 2015 at 01:47 wrote: > >> results for d7e490db8d54 on branch "default" >> -------------------------------------------- >> >> testcapi leaked [5411, 5411, 5411] references, sum=16233 >> testcapi leaked [1421, 1423, 1423] memory blocks, sum=4267 >> testfunctools leaked [0, 2, 2] memory blocks, sum=4 >> testthreading leaked [10820, 10820, 10820] references, sum=32460 >> testthreading leaked [2842, 2844, 2844] memory blocks, sum=8530 Bisection shows they were probably introduced by: changeset: 97413:dccc4e63aef5 user: Raymond Hettinger <python at rcn.com> date: Sun Aug 16 19:43:34 2015 -0700 files: Doc/library/operator.rst Doc/whatsnew/3.6.rst Lib/operator.py Lib/test/testoperator.py description: Issue #24379: Add operator.subscript() as a convenience for building slices.

If you comment out @object._new_ on line 411 in operator.py, or if you remove the slots assignment (which is a bit worrying), the leak seems suppressed.

The problem is that the "subscript" class is not a GC type, but participates in a cycle through its type. I suspect it's type to force all heap types to have GC. Armin Rigo found previous examples where this special case caused problems, and I don't see what it buys anyway.



More information about the Python-Dev mailing list