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.