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.
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to