Hello again.
The majordomo FAQ talks about this problem. At the bottom, in
particular, it talks about linux, which is our OS. Is there some
equivalent #define HASFLOCK 0 that we can set for exim?
BTW, this never happened in the years we ran sendmail, but of course,
there are lots of reasons why we never want to go back to that opaque
can of worms.
----- From the majordomo FAQ ----
4.3 - Why do I get duplicate mail sent to the list? If you're running
MMDF, read on: [From Gunther Anderson]
Well, I can tell you what happened to me recently. We use MMDF here,
which certainly colors the picture a little. What was happening here
was that MMDF was verifying the validity of the whole mailing list
before returning from the Submit call. The thing calling the Submit
would time out and close, but the Submit itself would still be running
somewhere. The calling routine would believe that the message had
failed in its delivery, but the Submit would eventually succeed. The
calling process would try again some time later. This, of course, is
bad. The larger the list got, the more addresses there were to verify
(verification was really just a DNS search on the target machine
name), the more likely, under load, that the message would
duplicate. We finally got so large, with so many international
addresses (which seem to timeout on DNS queries much more often than
US addresses) that we were always duplicating. Infinitely (until I
killed the original submitter).
The solution for us was MMDF-specific. We used a different channel
for submission and delivery, one which deliberately doesn't verify the
addresses before accepting a job. We used the list-processor channel,
and only had to check that the listname-request name was set properly,
because list-processor insists on making listname-request the envelope
"From " header name.
If you're running Sendmail, this is more rare. There have been
unconfirmed reports that on some systems having the queue process
interval set too short can cause problems, even though sendmail is
supposed to handle this. Workarounds are to increase your queue
process interval (-q flag), or decrease the interval between queue
checkpoints (OC flag in sendmail.cf).
There have been many reports from Linux users complaining about
duplicate mail. The problem seems to be that flock() under Linux is
broken. This may be fixed in a future release, but for now in
sendmail's conf.h in the #ifdef __linux__ section add a line #define
HASFLOCK 0. There are also reports that some versions of the libc have
problems, and that linking with the libresolv.a from a recent BIND
version will work around the problem.
-----
Thanks again for any thinking anyone does about this.
Marilyn Davis, Ph.D.
eVote - online polling software for email lists
http://www.deliberate.com
marilyn@???
+1 650 965-7121 (USA)