On Thu, May 20, 2010 at 7:33 PM, William A. Rowe Jr.
<wr...@rowe-clan.net> wrote:
> On 5/17/2010 9:15 AM, Jeff Trawick wrote:
>>
>> mod_mutex looks fine to me, but I'm not so happy that we're optimizing
>> the situation for unbundled modules that want to use a new API with
>> old 2.2.x, at the expense of existing bundled modules that may
>> potentially require mutex configuration and should be able to do so
>> using the streamlined API with zero migration impact.
>>
>> I'd prefer the combination of
>>
>> i. backport mutex API to 2.2.16 as part of core
>> ii. "somehow" distribute mod_mutex.c + util_mutex.h for the very small
>> set of users both
>> a. stuck on old 2.2.x
>> b. use certain, yet-to-be-determined unbundled modules with
>> requirement for the new mutex API
>
> My thinking is that users of system-provisioned httpd may not have the luxury
> of choosing 2.2.16, which is why I proposed a module instead of a backport.

I understand; I just don't think we should optimize for mod_ftp and
unknown third-party modules at the expense of httpd-core-distro (by
that I mean everything in httpd-2.2.x.tar.gz, some of which doesn't
currently offer mutex cfg and could conceivably require it to solve
user problems).

That's my concern in a nutshell: It is optimized for (mostly) other
people's stuff* and for users that stay on old releases, at the
expense of "it just works" with httpd 2.2.16+.

Delivering via mod_mutex is hardly a perfect solution for third-party
modules, since they+ must tell (help) their users to download the
latest httpd-2.2.x sources, grab mod_mutex, install it to their server
with apxs, put util_mutex.h somewhere that the third-party module
build will find it, and update httpd.conf to load mod_mutex too.

*those modules/authors that don't want to maintain the extra 20LOC or
so to work as-is with <= 2.2.15! or support mutex configuration with
2.2.16+

+well, this will bleed into the support aspect of our project as well

!if critical for some module's user base they can still tell users to
grab mod_mutex; the module just needs to use "#if HAVE_MOD_MUTEX ||
mmn-at-least()"; as you point out in your previous post, those
mod_mutex users have a real migration impact when they upgrade to
2.2.16+: stop loading mod_mutex, and rebuild the third-party module so
that it stops using the stubs that look for the optional function;
definitely ugly; would be a showstopper if we think lots of users of
existing httpd will be using non-core modules that force their user
base to make the mutex API available

Somebody else say something either way :)


>
>> 2.0.x?  any way to get the one true mod_mutex is fine with me
>
> (ditto, and more significant - nobody chooses to be stuck at 2.0.  External
> forces like pointy-headed bosses must be at play :-)
>
>> A couple of unbundled modules have come up as part of this
>> conversation...  Here's what I'd suggest we do with mod_fcgid:
>>
>> 1. Use new mutex API if building with httpd >= 2.2.16.
>> 2. Goto done;
>> (AFAIK after n years of use there was one outstanding failure case
>> caused by mutex defaults, and I fixed it programmatically; yes,
>> "famous last words" and all that, but leave that sleeping dog alone
>> until something has to be done)
>
> Speaking for mod_ftp as well, I'd like to eliminate this #if condition, 
> multiple
> implementations case at the earliest convenience, accompanied by a minor rev 
> bump
> to declare that 'Mutex' is now in use.  The code begins to become as complex 
> as
> httpd 1.3 main() in these corner cases, supporting several rev levels of 
> httpd :)
>
> Since most bugs are gone, users can stick w/ x.y.final, and if they want to 
> move
> along with development and features, they can edit their Mutex config 
> statements
> for new modules they plug in from 2.3 or third parties.

Reply via email to