Why don't you put the database in a better place like /etc/mail/spamassassin. It could be a permission issue as well. Looking at the ls output that you provided only root can read the files. What user is spamd running under?
In my /etc/mail/spamassassin/local.cf I have: bayes_path /etc/mail/spamassassin/bayes -rw------- 1 filter root 43113 Feb 27 17:02 bayes_journal -rw------- 1 filter root 167936 Feb 27 16:44 bayes_seen -rw------- 1 filter root 2605056 Feb 27 16:44 bayes_toks Hope this helps Gary Smith -----Original Message----- From: JR [mailto:[EMAIL PROTECTED] Sent: Friday, February 27, 2004 3:14 PM To: [EMAIL PROTECTED] Subject: What the...?!?!?!?! My bayes ate itself! ACK!!!!!!!! So I'm trying to do my regular Friday ritual of training Bayes, and everything was going fine: # sa-learn --showdots --spam --mbox 'SPAM_False_Negatives.mbox' .... {*snip*} Learned from 262 message(s) (290 message(s) examined). # sa-learn --showdots --ham --mbox 'SPAM_False_Positives.mbox' ............ Learned from 12 message(s) (12 message(s) examined). # sa-learn --showdots --ham --mbox '! Ham.mbox' .... {*snip*} Learned from 435 message(s) (446 message(s) examined). Until it barfed oddly: # sa-learn --showdots --spam --mbox Caught_Spam.mbox .... {*snip*} Learned from 1981 message(s) (3500 message(s) examined). unlock: 9771 unlink failed: /root/.spamassassin/bayes.lock There's no /root/.spamassassin/bayes.lock file, so I'm not sure why it couldn't unlock it, unless sa-learn didn't make it in the first place... so what's up with that? Then I went to check on the total number of learned spam/ham: # sa-learn --dump magic {*snip*} 0.000 0 18 0 non-token data: nspam 0.000 0 0 0 non-token data: nham 0.000 0 360 0 non-token data: ntokens {*snip*} What the?!?!??! Where'd all my learned stuff go??? # spamassassin -D --lint {*snip*} debug: bayes: 10314 tie-ing to DB file R/O /root/.spamassassin/bayes_toks debug: bayes: 10314 tie-ing to DB file R/O /root/.spamassassin/bayes_seen debug: bayes: found bayes db version 2 debug: bayes: Not available for scanning, only 19 spam(s) in Bayes DB < 200 {*snip*} So my Bayes is completely gone (more importantly: essentially turned OFF!)? But there's stuff there: # ls -l /root/.spamassassin/ total 113708 -rw------- 1 root mail 84168704 Feb 2 11:52 auto-whitelist -rw------- 1 root mail 34885632 Feb 27 15:00 auto-whitelist.db -rw------- 1 root mail 10481664 Feb 27 15:00 bayes_seen -rw------- 1 root mail 5611520 Feb 27 15:00 bayes_toks -rw-r--r-- 1 root mail 1218 Jan 2 14:47 user_prefs So now I'm re-training on my two IMAP archives of what I had previously trained it with. I just fed it 30374 spam messages. But this kept scrolling across my screen over and over and over: Argument "" isn't numeric in numeric lt (<) at /usr/lib/perl5/site_perl/5.6.1/Mail/SpamAssassin/BayesStore.pm line 1267. Argument "" isn't numeric in numeric lt (<) at /usr/lib/perl5/site_perl/5.6.1/Mail/SpamAssassin/BayesStore.pm line 1267. Argument "" isn't numeric in numeric lt (<) at /usr/lib/perl5/site_perl/5.6.1/Mail/SpamAssassin/BayesStore.pm line 1267. Argument "" isn't numeric in numeric lt (<) at /usr/lib/perl5/site_perl/5.6.1/Mail/SpamAssassin/BayesStore.pm line 1267. And when it finished: Learned from 327 message(s) (30386 message(s) examined). unlock: 10665 unlink failed: /root/.spamassassin/bayes.lock What's going on here? (And no, we haven't done anything to perl. This machine pretty much sits there and minds its own business. The only "changes" I make to it are to update custom .cf files and to train bayes.) I get the same BayesStore.pm error when trying to feed it the 2824 ham messages I have archived. But it didn't puke with a unlink message: Learned from 18 message(s) (2827 message(s) examined). Now I'm up to a whoppingly unuseful message count that won't enable bayes: 0.000 0 26 0 non-token data: nspam 0.000 0 18 0 non-token data: nham This is JUST what I need at 3pm on a Friday. ANY clues as what the hell happened and how to (quickly) fix it? This sucks. --JR
