On Wed, Jun 22, 2016 at 7:26 AM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

>
>> Have a look at r1749658 & r1749659 for the simplest solution I could
> come up with, and let me know what you think?
>

r1749679 improves this a bit further by explaining to the user why
proxy_hcheck
isn't built - with a warning that mod_watchdog was disabled.

Attached is a roll-up patch to apply to 2.4.21/.22 to confirm the new
behavior,
before 2.4.23 is rolled.

Here's my sanity test under the default --enable-mods-shared=most schema,
throwing all of the proxy, watchdog and proxy_hcheck toggles...

(for h in "--disable-proxy-hcheck" "" "--enable-proxy-hcheck"; do for w in
"--disable-watchdog" "" "--enable-watchdog"; do for p in "--disable-proxy"
"" "--enable-proxy"; do rm Makefile 2>/dev/null; echo "Testing $h $w $p";
../../httpd-2.4/configure $h $w $p 2>&1 | grep hcheck; if test -f Makefile;
then echo "Config complete"; else echo "Config ABORTED"; fi; echo ""; done;
done; done) > logit

The default surprise cases are these two;

Testing  (no flags given)
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

Testing   --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

it seems to me that now, by default, watchdog aught to be enabled since
it corresponds to the default enablement of proxy and proxy_hcheck, no?
Alternately, --enable-proxy simply has the wrong default for ./configure,
but
I do *not* believe we can or should change that in 2.4.x branch.


Also mildly surprising based on the watchdog default, but entirely harmless,

Testing --enable-proxy-hcheck
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Testing --enable-proxy-hcheck  --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Post-2.4.21/22 this is now  an informative scenario, and no legacy config
could conceivably toggle --enable-proxy-hcheck, so we can ignore this.


Toggling watchdog leads to desirable default results...

Testing  --enable-watchdog
checking whether to enable mod_proxy_hcheck... checking dependencies
checking whether to enable mod_proxy_hcheck... shared (most)
Config complete

Testing  --enable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
checking whether to enable mod_proxy_hcheck... shared
Config complete

Testing --enable-proxy-hcheck --enable-watchdog
checking whether to enable mod_proxy_hcheck... checking dependencies
checking whether to enable mod_proxy_hcheck... shared
Config complete

Testing --enable-proxy-hcheck --enable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
checking whether to enable mod_proxy_hcheck... shared
Config complete


Toggling --enable-proxy-hcheck with conflicting arguments leads
to expected, desirably fatal results;

Testing --enable-proxy-hcheck --disable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Testing --enable-proxy-hcheck --disable-watchdog
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Testing --enable-proxy-hcheck --disable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Testing --enable-proxy-hcheck  --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED

Testing --enable-proxy-hcheck --enable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... configure: error:
mod_proxy_hcheck has been requested but can not be built due to
prerequisite failures
Config ABORTED


Where watchdog or proxy are explicitly disabled, these are not
surprising, but still informative (this noise will be new stderr output);

Testing  --disable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

Testing  --disable-watchdog
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

Testing  --disable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

Testing   --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete

Testing  --enable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_proxy is disabled but required for
mod_proxy_hcheck"
checking whether to enable mod_proxy_hcheck... no (disabled)
Config complete


And finally, when proxy-hcheck is explicitly disabled, we have no extra
noise to stderr...

Testing --disable-proxy-hcheck --disable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck --disable-watchdog
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck --disable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck  --disable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck  --enable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck --enable-watchdog --disable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck --enable-watchdog
checking whether to enable mod_proxy_hcheck... no
Config complete

Testing --disable-proxy-hcheck --enable-watchdog --enable-proxy
checking whether to enable mod_proxy_hcheck... no
Config complete


The upshot is that I think Jim meant to change mod_watchdog
from build-all to build-most (or promote it to most in the case of
--enable-proxy) based on its new use-case. We could ship things
as they stand now, or adjust the --enable-watchdog defaults.

Reply via email to