On Thu, Feb 5, 2009 at 12:36 AM, Mladen Turk <mturk@apache.org> wrote:
Ruediger Pluem wrote:


I would like to commit this module to trunk.
It's a watchdog module that creates a worker threads
either in parent, child via an API, and it's not for
standalone use, but for other module usage like
mod_heartbeat, probably mod_jk and others that need
maintenance threads.

It seems scary to me to have the MPM parent on Unix forking children while a
separate thread in that same process is running arbitrary code.  Surprising
problems can crop up when this arbitrary code is in certain states (maybe a
mutex gets inherited in held state by the new MPM child?)

This seems to be a very valid concern to me. Plus in the parent it runs with root
privileges and we should minimize the code that runs with these privileges, even
more so as an author of code that uses the watchdog may not really be aware that
its code is running under root (in contrast to people who develop modules like
mod_unixd and mod_privileges).


The parent process watchdog is supposed to be used only for core
features that affect all children's and can be done without
requiring graceful restart.
Making the module running as root is very easy and
average 'Joe the Developer' can already use such a feature
with or without this option.

A long-standing design point for Apache on Unix is that we have a single-threaded parent, because of all the problems which could conceivably be caused by the MPM forking a threaded process.  So *we* don't need that support for running other threads in the parent.

As you say, Joe the Developer (certainly the Joes that can get it running reliably without rare crashes) doesn't need the help either.

I think this means that nobody needs it ;)