[Mimedefang] multiplexor queue question

David F. Skoll dfs at roaringpenguin.com
Wed Aug 6 16:02:00 EDT 2003


On Wed, 6 Aug 2003, B. Tolka wrote:

> If the all your slaves are busy, will the multiplexor queue the messages
> without tempfailing? I am assuming the
> 100 below is messages of any size.
> MX_QUEUE_SIZE=100

Yes and no.  Here's how the queue mechanism works:

When an SMTP connection is first established, mimedefang asks
mimedefang-multiplexor how many free slaves there are.  If the
multiplexor says zero, the connection is tempfailed.  There's no
point in continuing if all slaves are busy.  You can see this around
line 290 of mimedefang.c

However, once an SMTP connection is underway, the queueing mechanism
comes into play.  Lets say you set the maximum number of slaves to
10, and 20 connections come in at about the same time.  Let's say
that because of timing, the first 15 get a non-zero answer for the
number of free slaves, but the last 5 get zero.  The last 5
connections will be tempfailed.

We now have 15 connections contending for 10 slaves.  If the slaves
are all busy, requests from one of the 15 connections needing a slave
will be queued.  (The *request* is queued in memory.  This has nothing
to do with Sendmail's mail queue.)

The idea is:  Once we've started doing some work, try very hard to
finish.  However, reject new connections until there are free slaves.

--
David.



More information about the MIMEDefang mailing list