Spamassisn errors

Hi all, If this is the wrong forum to post this please direct me to the right place.

While reading the maillogs I noticed the follow errors repeating over and over

Apr 3 08:23:51 ws096 last message repeated 2 times
Apr 3 08:23:51 ws096 spamd[369]: Number found where operator expected at (eval 1280) line 10, near "}
Apr 3 08:23:51 ws096 spamd[369]:
Apr 3 08:23:51 ws096 spamd[369]: 1"
Apr 3 08:23:51 ws096 spamd[369]: (Missing operator before
Apr 3 08:23:51 ws096 spamd[369]:
Apr 3 08:23:51 ws096 spamd[369]: 1?)
Apr 3 08:23:51 ws096 spamd[369]: rules: failed to run header tests, skipping some: syntax error at (eval 1280) line 11, near ";
Apr 3 08:23:51 ws096 spamd[369]: }"
Apr 3 08:23:51 ws096 spamd[369]: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.5/Mail/SpamAssassin/PerMsgStatus.pm line 2669, <GEN216166> line 99.

Any Ideas?

I have noticed sendmail has been sending out duplicate emails so maybe this could be the reason why?

That's strange, rather those error messages suggest that there is a problem with the perl script itself, than the Sendmail. Probably someone has edited the file manually and missed a quote, or a semicolon, or something similar that will result in perl syntax error. Maybe you can download the source files that are failing and run a diff against your file and the original one.

Some of the SpamAssassin rules also have interesting interpolations which don't work when you pass in a weird message. I think those should all be fixed, though; are you running the most recent version of SpamAssassin? (That's 3.2.4 at the mo.)

*bump*

Yes I am running the newest version of SpamAssassin. I did have a friend tell me that there is a problem with the Perl script. I really dont know anything about perl maybe I should ask this at a perl forum or something?

Apr 15 11:33:56 ws096 last message repeated 2 times
Apr 15 11:33:56 ws096 spamd[24802]: Number found where operator expected at (eval 448) line 10, near "}
Apr 15 11:33:56 ws096 spamd[24802]:
Apr 15 11:33:56 ws096 spamd[24802]: 1"
Apr 15 11:33:56 ws096 spamd[24802]: (Missing operator before
Apr 15 11:33:56 ws096 spamd[2285]: prefork: child states: BBBII
Apr 15 11:33:56 ws096 spamd[24802]:
Apr 15 11:33:56 ws096 spamd[24802]: 1?)
Apr 15 11:33:56 ws096 spamd[24802]: rules: failed to run header tests, skipping some: syntax error at (eval 448) line 11, near ";
Apr 15 11:33:56 ws096 spamd[24802]: }"
Apr 15 11:33:56 ws096 spamd[24802]: Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.5/Mail/SpamAssassin/PerMsgStatus.pm line 2669, <GEN545> line 40.

Are you able to isolate a message which triggers this error? That would help a lot.

You could try to figure out which rule "eval 448" corresponds to, or search for occurrences of the string in the error message (that's closing curly bracket, two newlines, number one) in the code, but if you're not familiar with Perl, that's not really realistic.

Anyway, this looks like a syntax error in one of the rules, or possibly in the eval code which reads the rules. If you have a pile of messages which trigger the warning then you can disable half the rules and see if you still get the problem, etc, just to narrow down which rule is the culprit.

Regarding the Sendmail duplicates, I think that's unrelated to this, unless you are running something truly unusual. Most sites run spamd on incoming mail, not outgoing; and in most regular deployments, spamd does not sit in a place where it is able to generate new messages, even if it wanted to.