Mailing List Archive

svn commit: r440086 - in /spamassassin/trunk/lib/Mail/SpamAssassin: DnsResolver.pm PerMsgStatus.pm
Author: jm
Date: Mon Sep 4 07:18:21 2006
New Revision: 440086

URL: http://svn.apache.org/viewvc?view=rev&rev=440086
Log:
memory leak in long-running scan processes using the URIBL rules; their callback closures were not being deleted after each message was scanned. Fixed, and fixed in such a way that plugins don't have to worry about those; they'll just be cleaned up by Mail::SpamAssassin::PerMsgStatus::check()

Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?view=diff&rev=440086&r1=440085&r2=440086
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Mon Sep 4 07:18:21 2006
@@ -428,7 +428,9 @@

=item $res->bgabort()

-Call this to release pending requests from memory when aborting backgrounded requests
+Call this to release pending requests from memory, when aborting backgrounded
+requests, or when the scan is complete.
+C<Mail::SpamAssassin::PerMsgStatus::check> calls this before returning.

=cut


Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?view=diff&rev=440086&r1=440085&r2=440086
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Mon Sep 4 07:18:21 2006
@@ -260,6 +260,7 @@
dbg("check: subtests=".$self->get_names_of_subtests_hit());
$self->{is_spam} = $self->is_spam();

+ $self->{main}->{resolver}->bgabort();
$self->{main}->call_plugins ("check_end", { permsgstatus => $self });

1;