I'm running Exim 4.60 on Mac OS X, and calling SpamAssassin automatically through SA-Exim (which makes Exim pass mail thru spamd). SpamAssassin 3.0.4 was running fine, but when I upgraded to SpamAssassin 3.1.0 (by downloading and compiling the source, after using CPAN to update all the optional modules), I started getting these errors appearing in /var/log/mail.log every time I receive an email:

Dec 14 13:27:46 www spamd[3654]: spamd: connection from localhost [127.0.0.1] at port 63377 Dec 14 13:27:46 www spamd[3654]: mkdir /dev/null: File exists at /// Library/Perl/5.8.1/Mail/SpamAssassin.pm line 1467 Dec 14 13:27:46 www spamd[3654]: spamd: processing message <[EMAIL PROTECTED]> for exim:-2 Dec 14 13:27:46 www spamd[3654]: mkdir /dev/null: File exists at /// Library/Perl/5.8.1/Mail/SpamAssassin.pm line 1467 Dec 14 13:27:46 www spamd[3654]: locker: safe_lock: cannot create lockfile /dev/null/.spamassassin/auto-whitelist.mutex: Not a directory Dec 14 13:27:46 www spamd[3654]: auto-whitelist: open of auto- whitelist file failed: locker: safe_lock: cannot create lockfile /dev/ null/.spamassassin/auto-whitelist.mutex: Not a directory Dec 14 13:27:46 www spamd[3654]: Can't call method "finish" on an undefined value at ///Library/Perl/5.8.1/Mail/SpamAssassin/Plugin/ AWL.pm line 397, <GEN10> line 30. Dec 14 13:27:46 www spamd[3654]: bayes: locker: safe_lock: cannot create lockfile /dev/null/.spamassassin/bayes.mutex: Not a directory Dec 14 13:27:46 www spamd[3654]: spamd: clean message (0.0/5.0) for exim:-2 in 0.6 seconds, 1111 bytes. Dec 14 13:27:46 www spamd[3654]: spamd: result: . 0 - scantime=0.6,size=1111,user=exim,uid=-2,required_score=5.0,rhost=localho st,raddr=127.0.0.1,rport=63377,mid=<B7E3DDEE-8A6C-44A3- [EMAIL PROTECTED]>,autolearn=failed
Dec 14 13:27:47 www spamd[3645]: prefork: child states: II


Downgrading to SpamAssassin 3.0.4 solved the problem, but I'd like to be able to use 3.1.0. I can't figure out what's going wrong here - anyone have any ideas?

Line 1467 of SpamAssassin.pm is in "sub get_and_create_userstate_dir". Specifically it's: eval { mkpath($fname, 0, 0700) } or dbg("config: mkdir $fname failed: $@ $!\n");


Reply via email to