Re: [exim] Timeouts with Spamassassin 3.1.0 on particular ma…

Top Page
Delete this message
Reply to this message
Author: Ian FREISLICH
Date:  
To: Geraint Edwards, Alan Thew, Exim List
CC: 
Subject: Re: [exim] Timeouts with Spamassassin 3.1.0 on particular mail items
Geraint Edwards wrote:
> Only just upgraded, sorry for the delay...
>
> Alan Thew <Alan.Thew@???> said
>         (on Wed, Sep 28, 2005 at 02:36:31PM +0100):
> > After upgrading to SA 3.1.0 we've seen a very few mails timeout every time 
> > they are offered to spamd.

>
> We have exim-4.52 too (exim ports on FreeBSD 4 and 5). We're now
> getting timeouts since upgrading to spamassassin 3.1.0. Didn't
> notice these timeouts with 3.0.x (checked several months of logs,
> too). It seems restricted to large e-mails here (we don't get so
> many of these) - the following example is a 5.7MB spam mail.
>
> Summary - we seem to be seeing two problems:
>
> 1) SA is taking over 2mins (or over 5mins, depending on load!)
>     to process this mail, which seems excessive

>
> 2) exim seems to timeout waiting for spamd after 2mins (i.e. while
>     in the first "warn ... spam = spamu:true" statement) but
>     both exim and SA carry on(!), exim appearing to fall
>     through to the next "spam = spamu:true" line (because of
>     the "true"?) and starts *another* spamd on the message, so
>     these concurrent spamd's (on the same message!) take even
>     longer and after 5mins each they themselves "return" a
>     timeout (but carry on to give a result to the log file!).


Yes, although I don't think it's mentioned in the docs, the timeout
on the spamd connection times out after 2 minutes. I guess it
should be an option to the spam condition, but I haven't had the
time to figure out haw to do that yet. The timeout used to be 1
hour, but if you timeout anywhere near 5 minutes (the SMTP timeout)
you will land up getting duplicate deliveries because your side
will assume acceptance and the remate side will assume temporary
failure.

I'd not scan mail over a certain size. I use 80k as the cut off.
Also consider treating spam acl defers as OK:

  deny     condition    = ${if <{$message_size}{80k}{yes}{no}}
          !hosts        = net-iplsearch;/etc/exim/exclude.spamfilter.nets
           condition    = ${if eq{$interface_port}{587} {no}{yes}}
           spam         = HOSTNAME/defer_ok
           message      = This message rated as spam
           log_message  = SPAM message $spam_score


Ian

--
Ian Freislich