[exim] Duplicated mails using Exim and SpamAssassin

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Ernesto Saez
Date:  
À: exim-users
Sujet: [exim] Duplicated mails using Exim and SpamAssassin
Hi,
I have a large installation with Exim + SpamAssassin

There is a group of machines acting as front-ends. They receive mails from
outside and send them to the appropiate back-end. These front-ends have a
timeout for all connections of 30s

The back-ends, where the mailboxes are, have Exim with a data ACL for spam
detection (default configuration, as in the documentation).

In the back-ends there is a problem with disk access which we are trying
to solve but it is causing another problem: message duplication.

I will try to describe:

- a message is received in the front-ends
- a connection is opened to the back-end and the message is sent
- the backend starts processing the message to determine if it is spam.
- This processing takes too long (due to the disk problem) and when the
backend tries to send the final response the sender has already closed
the connection for timeout
So the result is that the front-end considers that the message has not
been sent as it has not received the final response BUT the message HAS
been received (and delivered) by the back-end. Later the front-end sends
the message again and that is why the message gets duplicated. This will
continue to happen until the backend processing time is less than the
front-end's timeout.

Of course we have to solve our disk problem in the back-ends, but, how can
we prevent the message duplication? Is there something we are not doing
properly?
Of course I can increase the timeout in the front-ends, but that does not
really solve the problem. Probably it will happen less times, but it will
still happen.
I have tried to set the variable local_scan_timeout to a low value (10s).
Does this make sense? It didnt make any difference.
Any suggestions?
If my explanation is not clear enough I can provide more details.

Help will be appreciated.

Ernesto.