[Biopython-dev] [Bug 3010] New: Bio.KDTree is leaking memory

bugzilla-daemon at portal.open-bio.org bugzilla-daemon at portal.open-bio.org
Fri Feb 12 03:30:12 EST 2010


http://bugzilla.open-bio.org/show_bug.cgi?id=3010

           Summary: Bio.KDTree is leaking memory
           Product: Biopython
           Version: 1.53
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Main Distribution
        AssignedTo: biopython-dev at biopython.org
        ReportedBy: krother at rubor.de


When I run KDTree on several of our PCs (Ubuntu, one with BioPython 1.53, one
with 1.51), it consumes memory that is never freed unless the process
terminates.

The code below fills 1GB memory within about a minute.

----
#!/usr/bin/env python

from Bio.KDTree.KDTree import *
from numpy.random import random

nr_points=1000
dim=3
bucket_size=10
coords=(200*random((nr_points, dim)))

while True:
   kdtree=KDTree(dim, bucket_size)
   kdtree.set_coords(coords)

----

Running the GC doesn't help (via del kdtree; gc.collect() in the while loop)
does not help.

I think the problem might be the C code or the Python/C interaction. I checked
the sources of KDTree superficially (to see whether there is a free() for each
malloc(), but did not see anything unusual (am not a C programmer though).

Peter proposed using valgrind to check memory leaks in C. Eventually it is
applicable to the problem.


-- 
Configure bugmail: http://bugzilla.open-bio.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the Biopython-dev mailing list