Multi-Process Pitfalls

Pearls of wisdom from the BIND10 team to the Kea team.


In standard unix, only a single process can bind to a socket.
We made "socket creator" process, runs as root, only thing that runs as root.
Only the init process talks directly to the socket creator.
Socket creator keeps a cache, hands back the same socket to each auth process.

DHCP needs raw sockets, broadcast, multicast.
Either extend socket creator, or make a new multicast socket creator.

Possible to have standalone modules, without socket creator?
Basically compile socket creator in, allocate sockets directory.

Commands to multiple processes

e.g. Single command to multiple Auth proc receives multiple responses.


We have central collector/collator process.

Goal is to aggregate stats from multiple procs of the same type, but we don't have it today. (Or do we?)

We don't have alerts/events when certain thresholds are reached. May be a job for a separate monitoring process.


Log rolling messes things badly with multiple processes. One proc decides a log is too large, rolls log. Another proc still has a reference to the old file, decides it's too big, rolls it.

We've also see mixed log messages from multiple processes. Mostly (always?) in Lettuce tests, suspect Python.

Last modified 5 years ago Last modified on Apr 17, 2013, 1:17:04 AM