[gt-users] memory leak in create_from_ptr

Brent Pedersen bpederse at gmail.com
Tue Apr 7 01:20:29 CEST 2009


hi,
i think that this script (run from root of gt):

###########################################
import gt

fi = gt.FeatureIndexMemory()
fi.add_gff3file("testdata/splice_site_prob.gff3")
f = fi.get_features_for_seqid(fi.get_first_seqid())[0]

while True:
    g = gt.FeatureNode.create_from_ptr(f.gn, newref=True)
    #g = gt.GenomeNode.create_from_ptr(f.gn, newref=True)

##############################################

shows a memory leak even when run with newref=False.
i think maybe it's something with create_from_ptr() or
to do with FeatureNode's having attribs that should be freed.


uncommenting the 2nd line in th while loop shows a bug fixed by
the patch below. once patched, there's no leak in that loop creating
only a GenomeNode and no FeatureNode. so it's something specific
to the latter.

-brent





git diff gtpython/gt/extended/genome_node.py
diff --git a/gtpython/gt/extended/genome_node.py
b/gtpython/gt/extended/genome_node.py
index 741ef54..a7a4b79 100644
--- a/gtpython/gt/extended/genome_node.py
+++ b/gtpython/gt/extended/genome_node.py
@@ -34,7 +34,7 @@ class GenomeNode(object):
   @classmethod
   def create_from_ptr(cls, node_ptr, newref=False):
     n = cls(node_ptr, newref)
-    n.gn = newref and gtlib.genome_node_ref(node_ptr) or node_ptr
+    n.gn = newref and gtlib.gt_genome_node_ref(node_ptr) or node_ptr
     n._as_parameter_ = n.gn
     return n


More information about the gt-users mailing list