[Mimedefang] My CFO keeps crashing Mimedefang. (Actually, qmail does...)

David F. Skoll dfs at roaringpenguin.com
Fri Dec 19 21:42:55 EST 2003


On Fri, 19 Dec 2003, Joshua Graham wrote:

> Everytime my CFO gets a humerous email in his home email account he
> decides to forward it to everyone at work by putting their address in the
> To: field.  I've asked him numerous times to stop but he does it anyway
> saying "Other mail servers can handle it, why cant ours?"

Yours can, but with some changes.

> Dec 19 14:43:22 firebox sendmail[906]: hBJMh72w000906:
> from=<lrhoffman at integraonline.com>, size=55908, class=0, nrcpts=1, msg
> id=<LNBBJCIHGNPKGDDHICHAIEAACEAA.lrhoffman at integraonline.com>, proto=SMTP,
> daemon=MTA, relay=mail-2.integraonline.com [206.163.82.91]
> Dec 19 14:43:23 firebox sendmail[902]: hBJMh62w000902:
> from=<lrhoffman at integraonline.com>, size=55908, class=0, nrcpts=1, msg
> id=<LNBBJCIHGNPKGDDHICHAIEAACEAA.lrhoffman at integraonline.com>, proto=SMTP,
> daemon=MTA, relay=mail-2.integraonline.com [206.163.82.91]

OK.  Something fishy.  Why is it sending one copy of the message to EACH
recipient?  What mail client is your CFO using?  What software is
mail-2.integraonline.com running... ah, wait a minute:  qmail.

That's your problem.

The esteemed Dan Bernstein decided that if a message comes in for
more than one recipient, then it must be sent out as one separate
message *per recipient*.

See the discussion at
http://www.ornl.gov/lists/mailing-lists/qmail/2003/04/msg00040.html

Basically, a whole bunch of slaves are starting up around the same time
and killing your box.  I'm guessing you don't have a lot of memory in
the machine (maybe 128 MB?) because...

> Dec 19 14:47:04 firebox mimedefang-multiplexor: Slave 6 died prematurely
> -- check your filter rules
> Dec 19 14:47:05 firebox mimedefang-multiplexor: Reap: Idle slave 6 (pid
> 326) exited due to signal 9 (SLAVE DIED UNEXPECTEDLY)

Signal 9 is a segmentation fault.  Perl is pretty unlikely to
segfault, so it's probably Linux's out-of-memory killer (I bet you're
running Linux -- right?) killing the slave.

> Dec 19 14:47:55 firebox mimedefang[915]: hBJMh72w000908: smfi_chgheader
> returned MI_FAILURE

That's because by the time the Perl process finally finished dealing with
the message, the Sendmail process it was communicated with has long
since disappeared.

> Dec 19 15:23:12 firebox sendmail[1008]: hBJNNC2w001008: Milter
> (mimedefang): error connecting to filter: Connection refused by
> /var/spool/MIMEDefang/mimedefang.sock

Here, the Linux out-of-memory killer ran amok and probably killed the
mimedefang process.  At this point, you're dead in the water.

> I'm pulling my hair out.

OK.  Here are some things that can help:

1) FIX THE qmail MACHINE!  Turn OFF the feature that sends out one
message per recipient.  I'm not familiar enough with qmail to know how
to fix this broken and unfriendly behaviour, but you must do it.

2) Use the latest version of MIMEDefang and enable the embedded
Perl interpreter, if your platform supports that.  It makes starting
up a whole bunch of slaves at once much faster, and also reduces
memory pressure.

3) Get more memory for your MIMEDefang machine.  Get a faster machine,
too.

Regards,

David.



More information about the MIMEDefang mailing list