Re: [exim] Exim has a bad queue handling?

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: John Robinson
CC: exim-users, Patrick von der Hagen
Subject: Re: [exim] Exim has a bad queue handling?
On Mon, 23 Oct 2006, John Robinson wrote:

> On 23/10/2006 17:53, Patrick von der Hagen wrote:
> [...]
> > Imagine you forward messages to a server that applies greylisting. Quite
> > a normal setup here. You get a message from A at 0:00 and have to
> > forward it to recipient Z on the server applying greylisting. A
> > temporary error is received and the greylisting-daemon saves
> > (A,Z,YOUR-IP) to its database.
> > Exim sets a retry-time, e.g. 15 minutes for recipient Z.
> >
> > At 0:14 a new mail from a new sender arrives, which is to be forwarded
> > to Z. You try it immediately, the greylisting-daemon saves (B,Z,YOUR-IP)
> > and your exim updates its retry-database, to have a new retry at 0:29
>
> Ah. Yes, that would be problematical. Again, I'm vague on all this, but
> I think that that shouldn't happen; the retry database should continue
> to show 0:15. If the retry system worked as you describe, I suspect it
> wouldn't just be greylisting which caused problems, but probably every
> other error too.


I'm afraid it will happen. Exim's "retry key" for a 4xx recipient error
is just the recipient address; it does not involve the sender. When the
same recipient address fails for the second time, the retry time for
that recipient will indeed be updated. (When I implemented this, I never
considered that a 4xx error could be dependent on the sender.)

The "obvious" solution to this is to include the sender address in the
retry key. However, this would of course increase the number of retries
in the case of a genuine (non-greylisting) 4xx response when there are
many messages from different senders for the same recipient. A queue run
would then try one message from each sender instead of just one message.

Is the gain worth the pain? If so, should it be optional? If so, which
should be the default?

-- 
Philip Hazel            University of Cambridge Computing Service
Get the Exim 4 book:    http://www.uit.co.uk/exim-book