Tracking down issue

2006-02-03 Thread Robert Fitzpatrick
I have been having a problem with mail timing out, the queue filling up
on my FreeBSD 5.4 server with Amavisd-new 2.3.3 and SA 3.1.0. I restart
amavisd and all starts working again. Scanning the logs, the first error
I can find before the problem is below, then I start getting amavisd
read timeouts as well until restarted. Not sure if this is an SA issue
or something else. I originally thought it was an Amavisd issue, now I
find this error ahead of the Amavisd read timeouts. Is this a result of
something wrong with SA perl modules or something else causes this type
of error?

Feb  2 00:50:53 esmtp amavis[80480]: (80480-03) SA TIMED OUT, backtrace:
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/
SpamAssassin/BayesStore/DBM.pm line 795\n\teval {...} called
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin
/BayesStore/DBM.pm line 795\n
\tMail::SpamAssassin::BayesStore::DBM::sync_due('Mail::SpamAssassin::BayesStore::DBM=HASH
(0xb00efb8)') called
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin/Bayes.pm line
1343\n\tMail::SpamAssassi
n::Bayes::opportunistic_calls('Mail::SpamAssassin::Bayes=HASH(0x9cff8d4)') 
called at /usr/local/lib/perl5/site_perl/5.
8.6/Mail/SpamAssassin/Bayes.pm line 1304\n
\tMail::SpamAssassin::Bayes::scan('Mail::SpamAssassin::Bayes=HASH(0x9cff8d4)
', 'Mail::SpamAssassin::PerMsgStatus=HASH(0xe250844)',
'Mail::SpamAssassin::Message=HASH(0xe2522b4)') called at /usr/l
ocal/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin/EvalTests.pm line 2505
\n\tMail::SpamAssassin::PerMsgStatus::check_bay
es('Mail::S...

-- 
Robert



RE: Tracking down issue

2006-02-03 Thread Gary V

I have been having a problem with mail timing out, the queue filling up
on my FreeBSD 5.4 server with Amavisd-new 2.3.3 and SA 3.1.0. I restart
amavisd and all starts working again. Scanning the logs, the first error
I can find before the problem is below, then I start getting amavisd
read timeouts as well until restarted. Not sure if this is an SA issue
or something else. I originally thought it was an Amavisd issue, now I
find this error ahead of the Amavisd read timeouts. Is this a result of
something wrong with SA perl modules or something else causes this type
of error?

Feb  2 00:50:53 esmtp amavis[80480]: (80480-03) SA TIMED OUT, backtrace:
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/
SpamAssassin/BayesStore/DBM.pm line 795\n\teval {...} called
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin
/BayesStore/DBM.pm line 795\n
\tMail::SpamAssassin::BayesStore::DBM::sync_due('Mail::SpamAssassin::BayesStore::DBM=HASH
(0xb00efb8)') called
at /usr/local/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin/Bayes.pm line
1343\n\tMail::SpamAssassi
n::Bayes::opportunistic_calls('Mail::SpamAssassin::Bayes=HASH(0x9cff8d4)') 
called at /usr/local/lib/perl5/site_perl/5.

8.6/Mail/SpamAssassin/Bayes.pm line 1304\n
\tMail::SpamAssassin::Bayes::scan('Mail::SpamAssassin::Bayes=HASH(0x9cff8d4)
', 'Mail::SpamAssassin::PerMsgStatus=HASH(0xe250844)',
'Mail::SpamAssassin::Message=HASH(0xe2522b4)') called at /usr/l
ocal/lib/perl5/site_perl/5.8.6/Mail/SpamAssassin/EvalTests.pm line 2505
\n\tMail::SpamAssassin::PerMsgStatus::check_bay
es('Mail::S...

--
Robert



I could be wrong, but I don't think it's really an error, more like an 
informational message.


Looks like it could be Bayes may be doing an opportunistic expiry during the 
processing of a message. I have seen this push CPU to 99% and slow 
processing enough to cause messages to take longer than 30 seconds (default 
for how much time amavisd-new gives spamassassin) to process a message. With 
SpamAssassin 3.1 on a low powered machine, it is not unusual for a message 
to take longer than 30 seconds (notably when a message is auto-learned). I 
would suggest doing all the things that can help with this.


Give spamassassin more time to process. In amavisd.conf:

$sa_timeout = 80;

Move Bayes to SQL, here are a bunch of links that help explain this:

http://wiki.apache.org/spamassassin/BetterDocumentation/SqlReadmeBayes?highlight=%28mysql%29
http://people.apache.org/~parker/presentations/
http://spamassassin.apache.org/full/3.0.x/dist/sql/README.bayes
http://spamassassin.apache.org/full/3.0.x/dist/sql/README
http://www200.pair.com/mecham/spam/fc4-spamassassin-sql.html
http://www200.pair.com/mecham/spam/debian-spamassassin-sql.html
http://www.paulstimesink.com/index.php?op=ViewArticlearticleId=163blogId=2
http://www.paulstimesink.com/index.php?op=ViewArticlearticleId=167blogId=2
http://www.sng.ecs.soton.ac.uk/mailscanner/serve/cache/390.html
https://secure.renaissoft.com/cgi-bin/trac.cgi/wiki/SpamAssassin3SQLBayes

If you can't or won't move to SQL, then at least consider setting
lock_method flock
in local.cf if it is an appropriate choice in your environment.

Turn off auto expire and set up a cron job to do it in off-peak hours, here 
is what I use:

http://www200.pair.com/mecham/spam/bayes-maint.txt

Of course, one other option is to turn off Bayes...

Gary V

_
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/