[Mimedefang] Freezing/hanging MIMEDefang 2.56
David F. Skoll
dfs at roaringpenguin.com
Wed Sep 6 11:14:58 EDT 2006
Bernd Petrovitsch wrote:
> Does anyone else experience a freezing mimedefang-multiplexor parent
> process with up to 200 child processes?
Not I. (I develop on Sarge, and we have some Sarge-based CanIt appliances
running MIMEDefang/CanIt that experience pretty heavy load.)
> This happens on Linux Debian/Sarge if we try to stress-test the
> installation. Is there a known maximum number of child processes so that
> it works?
The maximum number of child processes is typically limited by the
number of file descriptors in an "fd_set" structure. This number
(FD_SETSIZE) is typically 1024, and each slave consumes 4 or 5
descriptors (depending on whether or not you use the "-Z" flag),
limiting you to around 200-256 slaves.
However, you shouldn't see hangs if you exceed that number. Instead,
you should see error messages about bad file descriptors in your logs.
> The mimedefang-multiplexor process hangs in a futex(2) SysCall - so it
> seems to be some locking problem.
There's no explicit locking. The multiplexor is a single-threaded,
event-driven process. All synchronization is implicit, and happens
in a select() call.
> But what I found was in activateSlave() around line 2313:
> ---- snip ----
> sigemptyset(&sigs);
> sigprocmask(SIG_BLOCK, &sigs, NULL);
> ---- snip ----
Doh... that IS a no-op. It should be SIG_SETMASK.
But that shouldn't be the cause of the problem.
Regards,
David.
More information about the MIMEDefang
mailing list