On Tue, 2014-05-27 at 02:48 +0200, Karsten Bräckelmann wrote:
> On Sat, 2014-05-24 at 12:34 +0100, Martin Gregorie wrote:
> > On Sat, 2014-05-24 at 05:04 +0200, Karsten Bräckelmann wrote:
> 
> > LATER: This morning I reran some failing examples after rebooting the
> > test machine. No change, so I tried a few stripped-down runs, i.e. I
> > started spamd via a test script that uses systemctl to start or stop it
> > and then used "spamc <testmessage" to exercise it while I played round
> > with spamc options. In the course of this I noticed a strange effect:
> > 
> > The FIRST message after restarting spamd never has X-Spam headers, but
> > the second and subsequent ones do have X-Spam headers.
> > 
> > I'm running these versions:
> > 
> > $ spamd --version
> > SpamAssassin Server version 3.3.2
> >   running on Perl 5.18.2
> >   with SSL support (IO::Socket::SSL 1.955)
> >   with zlib support (Compress::Zlib 2.062)
> > $ spamc --version
> > SpamAssassin Client version 3.2.4
> > 
> > Should the spamc/spamd version mismatch have any bad effects?
> 
> No, there should be absolutely no problems, since spamc/d are using a
> protocol that hasn't even added features since 3.2, let alone changed in
> an incompatible way.
> 
> It does indicate a real problem with your package management or custom
> builds, though.
> 
> 
> > The only SA package I have installed is spamassassin.i686 3.3.2-56.fc20
> > which came from atrpms. This is odd, since all the uninstalled packages
> > (spamass-milter, spamass-milter-postfix, spamassassin-FuzzyOcr,
> > spamassassin-iXhash2, spambayes, spampd, spamprobe.i686) are from Fedore
> > repositories as you'd expect. Removing and reinstalling the spamassassin
> > package has had no effect.
> > 
> > I'll take this up with RedHat next week and see if I can find out why
> > they no longer provide the main spamassassin package in their
> > repository.
> 
> A quick googlin' brings up spamassassin 3.3.2-18.fc20 for Fedora 20, in
> a single package shipping both spamc and spamd in /usr/bin.
>
After deleting and reinstalling (yum install spamassassin) I now have
spamassassin.i686 3.3.2-18.fc20 installed but with no apparent effect:
it is running these versions:

# spamd --version
SpamAssassin Server version 3.3.2
  running on Perl 5.18.2
  with SSL support (IO::Socket::SSL 1.955)
  with zlib support (Compress::Zlib 2.062)
# spamc --version
SpamAssassin Client version 3.2.4

exactly as before. Yum says it knows about these spamassassin package:

Installed Packages
spamassassin.i686   3.3.2-18.fc20   @updates
Available Packages
spamassassin.i686   3.3.2-56.fc20   atrpms

which at least explains why the atrpms package was installed rather than
the Fedora @updates one.

The only problem is as before

$ start sa    # private script which uses systemctl start spamassassin
              # which is running under root as expected
$ ps -ef |grep spamd
root     23426     1  6 17:28 ?        00:00:03 /usr/bin/spamd
--pidfile /var/run/spamd.pid -d -c -m5 -H
root     23427 23426  0 17:28 ?        00:00:00 spamd child
root     23428 23426  0 17:28 ?        00:00:00 spamd child
kiwi     23449 23142  0 17:29 pts/1    00:00:00 grep --color=auto spamd

$ testsa data/sale57.txt
Checking data/sale57.txt
--------
========
Checked 1 messages in 0 secs, 0 mS/message
$ testsa data/sale57.txt
Checking data/sale57.txt
--------
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
zappa.gregorie.lan
X-Spam-Flag: YES
X-Spam-Level: *******
X-Spam-Status: Yes, score=7.9 required=6.0 tests=HTML_IMAGE_RATIO_04,

HTML_MESSAGE,MG_MONEY,MG_PRICE,MG_PRODUCT,MG_SALE,MG_SALESOFFER,MG_SALESPAM,
        MG_SPAMREF,RP_MATCHES_RCVD,T_DKIM_INVALID,T_END_FUTURE_EMAILS,
        UNPARSEABLE_RELAY autolearn=no version=3.3.2
========
Checked 1 messages in 0 secs, 0 mS/message

$ sa stop

As you can see, spamc/spamd from @updates does exactly the same as the
one from atrpms: the first message passed by spamc after spamd is
started apparently does nothing but the second and subsequent ones are
scanned.

The testsa script looks like this:

$ cat testsa
#!/bin/bash
#
#help
# Syntax:   testsa [-x] testmessage.....
# Function: Run one or more messages through spamc
#           The output is filtered to contain only headers
#           added by Spamassassin
# Options:  -x     show the whole message
#end

if [ "$1" == '-?' ]
then
        script_help testsa
        exit 1
fi

state=$(spamdstatus)
if [ "$state" == 'spamd is stopped' ]
then
        sudo systemctl start spamassassin.service
fi

if [ "$1" == '-x' ]
then 
        filter=no
        shift
else
        filter=yes
fi

tcount=0
starttime=$(date +%s)
for s 
do
        echo "Checking $s"
        echo "--------"
        if [ $filter == 'yes' ]
        then
                spamc --max-size=1000000 <$s | gawk '
                        BEGIN           { tag=0 }
                        /^X-Spam/       { tag=1; print; next }
                        /^ / || /^\t/   { if (tag==1) { print } next }
                                        { tag = 0 }
                '
        else
                spamc <$s 
        fi
        echo "========"
        tcount=$(expr $tcount + 1)
done

endtime=$(date +%s)
elapsed=$(expr $endtime - $starttime)
rate=$(expr $elapsed \* 1000 / $tcount)
echo "Checked $tcount messages in $elapsed secs, $rate mS/message"

if [ "$state" == 'spamd is stopped' ]
then
        sudo systemctl stop spamassassin.service
fi

Obviously something is wrong, but should this be raised on the Fedora
Bugzilla or would it be better raised within the SA project?


Martin
  






Reply via email to