httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject Re: new watchdog module
Date Fri, 06 Feb 2009 15:42:06 GMT
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 ;)

Mime
View raw message