[Mailman-Developers] duplicate messages

Scott scott@chronis.icgroup.com
Tue, 11 Aug 1998 15:42:43 -0400


I have a test list set up on a linux box that is regularly sending out
2 copies of messages.   The list has 2 subscribers, and inevitably one
of the two subscribers (different host names) gets a duplicate
message.  Which one gets the duplicate appears to be random.  If i
only have one subscriber, then no duplicates are produced.

I poked around the sources a bit and found that if I take out the
fork() in this deliver script function, i no longer get duplicates. 

I don't know why this fork() would create duplicate deliveries, but i
am certain that eliminating the call to forker() causes no duplicates
to be produced.


def ContactTransportForEachGroup(sender, groups, text):
    if len(groups) == 1:
        ContactTransport(sender,groups[0],text)
        return
    for group in groups:
        if not forker():  # if we don't fork here, there are no duplicates
            ContactTransport(sender,group,text)
            os._exit(0)



interestingly enough, the following script never seems to produce
duplicates:

import os

l = [1,2,3,4,5,6,7,8,9]

for x in l:
    if not os.fork():
        print x
        os._exit(0)



any help on how to fix this would be greatly appreciated.  I am
running Linux chronis 2.0.33 #1 Mon Apr 27 22:50:00 EDT 1998 i586
with glibc2.07, python 1.5.1, mailman 1.0b5.

scott