You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2006/06/27 06:34:26 UTC
svn commit: r417337 - in /spamassassin/trunk/lib/Mail: SpamAssassin.pm
SpamAssassin/Bayes.pm
Author: felicity
Date: Mon Jun 26 21:34:25 2006
New Revision: 417337
URL: http://svn.apache.org/viewvc?rev=417337&view=rev
Log:
bug 4488: deal with a circular reference between Bayes and BayesStore -- when M::SA::finish() is called, make sure to delete the Bayes->BayesStore reference, which will then let everything else get cleaned up as expected.
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin.pm?rev=417337&r1=417336&r2=417337&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Mon Jun 26 21:34:25 2006
@@ -561,7 +561,7 @@
sub finish_learner {
my $self = shift;
- $self->{bayes_scanner}->finish() if $self->{bayes_scanner};
+ $self->{bayes_scanner}->sanity_check_is_untied(1) if $self->{bayes_scanner};
1;
}
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm?rev=417337&r1=417336&r2=417337&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm Mon Jun 26 21:34:25 2006
@@ -262,6 +262,7 @@
# use Carp qw(cluck); cluck "stack trace at untie";
$self->{store}->untie_db();
+ delete $self->{store};
}
sub sa_die { Mail::SpamAssassin::sa_die(@_); }
@@ -270,12 +271,13 @@
sub sanity_check_is_untied {
my $self = shift;
+ my $quiet = shift;
# do a sanity check here. Wierd things happen if we remain tied
# after compiling; for example, spamd will never see that the
# number of messages has reached the bayes-scanning threshold.
if ($self->{store}->db_readable()) {
- warn "bayes: oops! still tied to bayes DBs, untying\n";
+ warn "bayes: oops! still tied to bayes DBs, untying\n" unless $quiet;
$self->{store}->untie_db();
}
}