Theo Van Dinter writes:
> 432243 runs fine, but 432244 causes OOMs.  I poked around some more to
> determine the other keys that need to be deleted, and was going to just
> add them in, but I got to thinking:  Since any plugin can add in data to
> PMS, there can be any number of circular refs that we don't know about, so
> deleting all of the keys is the only way we can be sure to clear them out.
> 
> FWIW: I found resolver and uribl_scanstate which needed to be removed, but
> even then I still got OOMs, it just took longer.  I assume there are other
> net-test-related things that I'm somehow not seeing via Data::Dumper.
> 
> I'm going to commit in a change that changes PMS::finish() to do:
> 
> %{$self} = ();
> 
> which ends up deleting all the keys while not requiring the foreach() method
> that we used previous, so I hope this solves JM's original issue if that being
> inefficient.

Yep, looks fine to me!  Good catch.

> I do think that we still have leaks elsewhere since the process memory
> continues to grow, but it's much lower than before.  I'll keep digging.

Please do...

Last time I looked, there were some tiny leaks over time in the perl
interpreter, but nothing to be worried about (since we restart
every N messages in spamd and mass-check).

--j.

Reply via email to