[Mailman-Users] Wondering how long to send messages
John W. Baxter
jwblist at olympus.net
Sat Aug 28 18:25:43 CEST 2004
On 8/28/2004 8:06, "Brad Knowles" <brad at stop.mail-abuse.org> wrote:
> At 7:35 AM -0700 2004-08-28, John W. Baxter wrote:
>> Does the code open the list once, obtain the addresses it needs (the
>> non-digest, not-no-mail, not duplicate filtered, etc) and then do its thing
>> without regard to the list object on disk, or does it keep peeking into the
>> object on disk while it's emitting messages.
> IMO, making changes like this while Mailman is still processing
> the message is unsafe and a very bad idea. At the very least, I
> think you should make sure that Mailman has completed all of its
> processing and all copies of the message have been handed off to the
> MTA, even if the MTA hasn't completed its own processing.
> But then, if those extra milliseconds matter and you want to
> greatly increase the risk of blowing off your foot with a
> hair-trigger large explosive device, you could always modify the code
> so as to allow you to do that. Of course, you couldn't expect to get
> much support here for any of your local modifications of that sort,
> but then if you're willing to make these kinds of modifications for
> these kinds of reasons, you probably don't care about community
> support anyway.
>> If the code keeps peeking at the list object on disk, then what matters is
>> how long it takes to get the message to the SMTP server to which we submit
>> the messages. That time can be read from the smtp log, and provides an
>> upper bound. I doubt one needs to wait that long. It's longer if Mailman
>> is VERPing.
> If you single-thread all deliveries to the list (so that one
> completes before the next one is allowed to start), then it's a
> relatively simple matter of watching the log files to see when it
> should be safe to make the changes.
> Regardless of how you do it and how safe or unsafe you make this
> process, this sort of thing will probably require some code changes,
> and then you're back to the community support problem again.
I'm not talking about making code changes.
I'm speculating about how the code works (because I don't presently have
time to follow a message through the code used by the delivery
process...it's non-trivial code).
A paraphrase of the original question goes something like
"I have sent a message to my list. I want to remove some addresses from the
list, but I want to be sure that those addresses receive the message. How
long do I have to wait?"
And the answer depends heavily on how Mailman processes a message through
the system. Again, does it gather the addresses and then work on them, or
does it keep referring back to the list object to find an address (or group
of addresses) to work on next? Only in the latter case does one have to
wait very long.
Note that this is a specialized situation.
More generally, it is safe to use the tools to change the list membership
any time...new additions may or may not receive a particular message, and
removed addresses may or may not receive a particular message, but no damage
is done (if the Mailman code is correct, and it seems to be, since we don't
see damage reports).
More information about the Mailman-Users