No, very unlikely you get 6.5 exactly. In particular, because there are
two rules scoring 0.0, which already is after per-score rounding for the
report. Hence me asking for the exact scores.
You are correct. Without rounding, it scores 6.4894 or something like
that. And the exact adding up is explained well in the rounding wiki
referenced below.
A good alternative to spamc for such testing is spamassassin with an
explicit --cf="use_auto_whitelist 0" option. :)
Thanks! That is a good trick. I often have to clear AWL scores while
doing research.
OK, so long and short, this is bug 2607 rearing it's head in spamd.
I've found the cause of the issue and the fix. Will open a bug in
bugzilla and address this issue further there.
Without reading the patch, which score and result is actually correct?
And what is the exact score?
From my understanding of the code and the wiki
http://wiki.apache.org/spamassassin/RoundingIssues, the score for an
email that is 6.45 to 5.4999999999 with a threshold of 6.5 as
SpamAssassin reports should be score=6.4, required=6.5. The old code
used to round to nearest 10th the message that X-Spam-Status: No,
score=6.5, required=6.5 was confusing so a special routine for rounding
when near the required score was implemented.
The PerMsgStatus.pm implements this special rounding.
SpamD/C uses rounding to the 10th for the output of the first line but
then utilizes PerMsgStatus.pm for the report, etc.
Hence the lack of consistency with one part of the output saying
score=6.5 and another saying score=6.4. They should have both said
score=6.4.
My patch implements logic with the same rounding in both places.
Regards,
KAM