Re: memory leak in Bio::Species

"Mark A Jensen" <[email protected]>
Newsgroups gmane.comp.lang.perl.bio.general
Message-ID <99a613afcbd0ccc666decff45c0cc6@ip-10-0-3-59>
Looks like a 'self-as-descendant' idea in the data structure. If the algorithms depend on that, I'm sure the right person could add a strategic weaken.

On Fri, Sep 12, 2014 at 2:22 PM, Dmitry Karasik <[email protected] > wrote:

Dear all,

I've hit a memory leak issue that OOMs our daemons once in a while, and what is

worse, I don't have the BioPerl expertise to fix it (I would send a patch

otherwise ). The problem is that Bio::Species and/or the modules it uses forms

cyclic references, which are never killed by perl automatically. I guess

either some internal data structure has to be reworked, or there should be some

strategic placing of Scalar::Util::weaken, but I have no idea where (or rather,

I could devise a hack that hammers weaken() instantly, but I don't think

this is the right approach).

It's very simple to reproduce, f.ex. by this:

use Devel::Cycle;

use Bio::Species;

find_cycle(Bio::Species->new(-classification => ['A']));

which outputs

Cycle (1):

$Bio::Species::A->{'taxon'} => \%Bio::Taxon::B

$Bio::Taxon::B->{'_ancestor'} => \%Bio::Taxon::C

$Bio::Taxon::C->{'_desc'} => \%D

$D->{'1'} => \%Bio::Taxon::B

Cycle (2):

$Bio::Species::A->{'tree'} => \%Bio::Tree::Tree::E

$Bio::Tree::Tree::E->{'_rootnode'} => \%Bio::Taxon::C

$Bio::Taxon::C->{'_desc'} => \%D

$D->{'1'} => \%Bio::Taxon::B

$Bio::Taxon::B->{'_ancestor'} => \%Bio::Taxon::C

whereas I would expect it would print nothing.

I should really much like to ask the devs for a closer look. It's here on

github: https://github.com/bioperl/bioperl-live/issues/81

Thank you in advance!

--

Sincerely,

Dmitry Karasik

_______________________________________________

Bioperl-l mailing list

[email protected]

http://mailman.open-bio.org/mailman/listinfo/bioperl-l

_______________________________________________
Bioperl-l mailing list
[email protected]
http://mailman.open-bio.org/mailman/listinfo/bioperl-l
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.