You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rp...@apache.org on 2016/06/17 18:29:16 UTC

svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Author: rpluem
Date: Fri Jun 17 18:29:16 2016
New Revision: 1748888

URL: http://svn.apache.org/viewvc?rev=1748888&view=rev
Log:
* If enable_proxy_hcheck is unset handle it like other proxy modules

Modified:
    httpd/httpd/trunk/modules/proxy/config.m4

Modified: httpd/httpd/trunk/modules/proxy/config.m4
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/config.m4?rev=1748888&r1=1748887&r2=1748888&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/config.m4 (original)
+++ httpd/httpd/trunk/modules/proxy/config.m4 Fri Jun 17 18:29:16 2016
@@ -13,6 +13,10 @@ fi
 if test "$proxy_mods_enable" = "no"; then
   enable_proxy_hcheck=no
 fi
+dnl If enable_proxy_hcheck is unset handle it like other proxy modules
+if test -z "$enable_proxy_hcheck" ; then
+  enable_proxy_hcheck="$proxy_mods_enable"
+fi
 
 proxy_objs="mod_proxy.lo proxy_util.lo"
 APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, , $proxy_mods_enable)



Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Mon, Jun 20, 2016 at 10:03 PM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

> On Mon, Jun 20, 2016 at 9:30 PM, William A Rowe Jr <wr...@rowe-clan.net>
> wrote:
>
>> On Mon, Jun 20, 2016 at 1:46 PM, Ruediger Pluem <rp...@apache.org>
>> wrote:
>>
>>>
>>> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
>>> > Did we miss this build breakage fix in 2.4.22?
>>>
>>> I guess so, but it only should happen with --enable-mods-shared=few
>>> which I guess is not that common.
>>>
>>
>> No, also happens with --enable-modules=none - something used to build
>> only the core, or explicitly listed modules, as you might expect out of
>> any
>> more sophisticated/component-oriented build schema...
>>
>> 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
>>
>
> Something else bothersome, but not a showstopper (and not a regression)...
>
> "../../httpd-2.4/configure" \
> "--prefix=/opt/apache24-apr15-ossl102" \
> "--with-apr=/opt/apr15-ossl102" \
> "--with-apr-util=/opt/apr15-ossl102"
>
> checking whether to enable mod_lbmethod_byrequests... shared
> checking whether to enable mod_lbmethod_bytraffic... shared
> checking whether to enable mod_lbmethod_bybusyness... shared
> checking whether to enable mod_lbmethod_heartbeat... shared
>
> Huh??? What does an lbmethod do with no proxy balancer?
>

More specifically...

 "../../httpd-2.4/configure" \
"--prefix=/opt/apache24-apr15-ossl102" \
"--with-apr=/opt/apr15-ossl102" \
"--with-apr-util=/opt/apr15-ossl102" \
"--enable-proxy=no"

(The default is --enable-mods-shared=most, including proxy)

Note that in most other scenarios, the ./configure proceeded, with warnings
about

"configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
 checking whether to enable mod_proxy_hcheck... no (disabled)"

which was fine.  Halting ./configure entirely in an unexpected way, under
some
of the scenarios, was the reason I believe this candidate is not viable.

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Mon, Jun 20, 2016 at 9:30 PM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

> On Mon, Jun 20, 2016 at 1:46 PM, Ruediger Pluem <rp...@apache.org> wrote:
>
>>
>> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
>> > Did we miss this build breakage fix in 2.4.22?
>>
>> I guess so, but it only should happen with --enable-mods-shared=few which
>> I guess is not that common.
>>
>
> No, also happens with --enable-modules=none - something used to build
> only the core, or explicitly listed modules, as you might expect out of any
> more sophisticated/component-oriented build schema...
>
> 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
>

Something else bothersome, but not a showstopper (and not a regression)...

"../../httpd-2.4/configure" \
"--prefix=/opt/apache24-apr15-ossl102" \
"--with-apr=/opt/apr15-ossl102" \
"--with-apr-util=/opt/apr15-ossl102"

checking whether to enable mod_lbmethod_byrequests... shared
checking whether to enable mod_lbmethod_bytraffic... shared
checking whether to enable mod_lbmethod_bybusyness... shared
checking whether to enable mod_lbmethod_heartbeat... shared

Huh??? What does an lbmethod do with no proxy balancer?

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Mon, Jun 20, 2016 at 1:46 PM, Ruediger Pluem <rp...@apache.org> wrote:

>
> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
> > Did we miss this build breakage fix in 2.4.22?
>
> I guess so, but it only should happen with --enable-mods-shared=few which
> I guess is not that common.
>

No, also happens with --enable-modules=none - something used to build
only the core, or explicitly listed modules, as you might expect out of any
more sophisticated/component-oriented build schema...

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

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Tue, Jun 21, 2016 at 2:33 PM, Ruediger Pluem <rp...@apache.org> wrote:

>
> On 06/21/2016 05:39 PM, William A Rowe Jr wrote:
> > Just retested on 2.4.x branch, better but still problematic...
> >
> > "../../httpd-2.4/configure" \
> > "--prefix=/opt/apache24-apr15-ossl102" \
> > "--with-apr=/opt/apr15-ossl102" \
> > "--with-apr-util=/opt/apr15-ossl102" \
> > "--enable-watchdog=no" \
> > "--enable-proxy=yes"
> >
> > checking whether to enable mod_proxy_hcheck... checking dependencies
> > configure: WARNING: "mod_watchdog is disabled but required for
> mod_proxy_hcheck"
> > configure: error: mod_proxy_hcheck has been requested but can not be
> built due to prerequisite failures
> > checking whether to enable mod_proxy_hcheck...
> > <abort>
>
>
> Would that suit better (against current 2.4.x):
>
> Index: config.m4
> ===================================================================
> --- config.m4   (revision 1749588)
> +++ config.m4   (working copy)
> @@ -13,9 +13,17 @@
>  if test "$proxy_mods_enable" = "no"; then
>    enable_proxy_hcheck=no
>  fi
> -dnl If enable_proxy_hcheck is unset handle it like other proxy modules
> +dnl If enable_proxy_hcheck is unset handle it like other proxy modules if
> +dnl it is able to disable itself. If not do not enable it.
>  if test -z "$enable_proxy_hcheck" ; then
> -  enable_proxy_hcheck="$proxy_mods_enable"
> +  case "$proxy_mods_enable" in
> +    yes|static|shared)
> +      enable_proxy_hcheck=no
> +      ;;
> +    *)
> +      enable_proxy_hcheck="$proxy_mods_enable"
> +      ;;
> +  esac
>  fi
>
>  proxy_objs="mod_proxy.lo proxy_util.lo"
>

I came up with the following logic to resolve default enablement
(forget leaving this loose in the file, it fits just fine in the
APACHE_MODULE syntax, as illustrated by mod_ssl,
mod_ldap, etc etc...)

--- modules/proxy/config.m4 (revision 1749557)
+++ modules/proxy/config.m4 (working copy)
@@ -10,14 +10,6 @@
   proxy_mods_enable=most
 fi

-if test "$proxy_mods_enable" = "no"; then
-  enable_proxy_hcheck=no
-fi
-dnl If enable_proxy_hcheck is unset handle it like other proxy modules
-if test -z "$enable_proxy_hcheck" ; then
-  enable_proxy_hcheck="$proxy_mods_enable"
-fi
-
 proxy_objs="mod_proxy.lo proxy_util.lo"
 APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, ,
$proxy_mods_enable)

@@ -67,7 +59,14 @@
 APACHE_MODULE(proxy_balancer, Apache proxy BALANCER module.  Requires and
is enabled by --enable-proxy., $proxy_balancer_objs, , $proxy_mods_enable,,
proxy)

 APACHE_MODULE(proxy_express, mass reverse-proxy module. Requires
--enable-proxy., , , $proxy_mods_enable,, proxy)
-APACHE_MODULE(proxy_hcheck, reverse-proxy health-check module. Requires
--enable-proxy and --enable-watchdog., , , $enable_proxy_hcheck,, watchdog)
+APACHE_MODULE(proxy_hcheck, [reverse-proxy health-check module. Requires
--enable-proxy and --enable-watchdog.], , ,[
+  $proxy_mods_enable
+  dnl Verify that both proxy_mods_enable above and watchdog below are
enabled
+  dnl when --enable-proxy-hcheck isn't explicitly elected
+  if test "$enable_watchdog" = "no"; then
+    enable_proxy_hcheck=no;
+  fi
+], , proxy watchdog)

 APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])

This does exactly what we want, enables proxy_hcheck when proxy
is enabled, will drop it immediately where watchdog is disabled, and
cause no extraneous noise or failures when not --enable-proxy-hcheck
(when the user does explicitly elect it and we can't build, we are
supposed to fail hard.)

What doesn't work is a list a module dependencies as I illustrated
above. This is important due to the consumer (static) requiring
a provider (shared) component, that the final dependency argument
tests for.

I'm working on a variation for that arg which would support iterating
a list of modules, ensuring each follows the enabled <> enabled
static <> static rule, but bash variable expansion is giving me a bit
of a headache.  Hope to have an update after dinner that would
support this syntax instead of duplicating a bunch of .m4 code out
of the acinclude.m4 APACHE_MODULE function.

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Wed, Jun 22, 2016 at 10:20 AM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

>
> Attached /was/ a patch, now attached again...
>

This patch solves the 80/20... but I'm seeing something disturbing
comparing the
original to the new logic in the new configure output from buildconf...
something
that does not occur with mod_ssl or mod_ldap, which follow the same pattern;

$ diff -u3 configure.orig configure | more
--- configure.orig 2016-06-22 13:36:58.719342545 -0500
+++ configure 2016-06-22 13:37:18.047758290 -0500
@@ -21588,10 +21588,6 @@
   proxy_mods_enable=most
 fi

-if test "$proxy_mods_enable" = "no"; then
-  enable_proxy_hcheck=no
-fi
-
 proxy_objs="mod_proxy.lo proxy_util.lo"

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable
mod_proxy
" >&5
@@ -23327,7 +23323,11 @@
 if test "${enable_proxy_hcheck+set}" = set; then :
   enableval=$enable_proxy_hcheck; force_proxy_hcheck=$enableval
 else
-  enable_proxy_hcheck=$enable_proxy_hcheck
+  enable_proxy_hcheck=$proxy_mods_enable
+      if test "$enable_watchdog" = "no"; then
+    enable_proxy_hcheck="";
+  fi
+
 fi

     _apmod_extra_msg=""
@@ -23374,7 +23374,15 @@
   if test "$enable_proxy_hcheck" != "no"; then
             { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking
dependenc
ies" >&5
 $as_echo "checking dependencies" >&6; }
-            if test "$enable_watchdog" = "no" ; then
+            if test "$enable_proxy" = "no" ; then
+                              enable_proxy_hcheck=no
+                              { $as_echo "$as_me:${as_lineno-$LINENO}:
WARNING:
 \"mod_proxy is disabled but required for mod_proxy_hcheck\"" >&5
+$as_echo "$as_me: WARNING: \"mod_proxy is disabled but required for
mod_proxy_h
check\"" >&2;}
+                            elif test "$enable_proxy_hcheck" = "static" &&
test
 "$enable_proxy" != "static" ; then
+                              enable_proxy_hcheck=no
+                              { $as_echo "$as_me:${as_lineno-$LINENO}:
WARNING:
 \"cannot build mod_proxy_hcheck statically if mod_proxy is built shared\""
>&5
+$as_echo "$as_me: WARNING: \"cannot build mod_proxy_hcheck statically if
mod_pr
oxy is built shared\"" >&2;}
+                            elif test "$enable_watchdog" = "no" ; then
                               enable_proxy_hcheck=no
                               { $as_echo "$as_me:${as_lineno-$LINENO}:
WARNING:
 \"mod_watchdog is disabled but required for mod_proxy_hcheck\"" >&5
 $as_echo "$as_me: WARNING: \"mod_watchdog is disabled but required for
mod_prox
y_hcheck\"" >&2;}
@@ -23410,7 +23418,12 @@
       sharedobjs=yes
       shared=yes
       DSO_MODULES="$DSO_MODULES proxy_hcheck"
-      if test "$enable_proxy_hcheck" = "yes" ; then
+      if test "
+  $proxy_mods_enable
+      if test "$enable_watchdog" = "no"; then
+    enable_proxy_hcheck="";
+  fi
+" = "yes" ; then
         ENABLED_DSO_MODULES="${ENABLED_DSO_MODULES},proxy_hcheck"
       fi
       ;;

That last stanza is nonsense.

I'm coming to the conclusion that modules/proxy/config.m4 made a fatal error
in not providing the typical no|most|all schema defaults, and that this
resulted
in the obscure behavior in the last stanza.

Have a couple things to wrap up, but I'm coming back to this in about 2 hrs,
and can hopefully isolate why this unique behavior occurs in proxy, but not
in ssl or ldap APACHE_MODULE results.

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Wed, Jun 22, 2016 at 10:19 AM, William A Rowe Jr <wr...@rowe-clan.net>
wrote:

> 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.
>

Attached /was/ a patch, now attached again...

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
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.

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Tue, Jun 21, 2016 at 2:33 PM, Ruediger Pluem <rp...@apache.org> wrote:

>
> On 06/21/2016 05:39 PM, William A Rowe Jr wrote:
> > Just retested on 2.4.x branch, better but still problematic...
>
> Would that suit better (against current 2.4.x):
>
> Index: config.m4
> ===================================================================
> --- config.m4   (revision 1749588)
> +++ config.m4   (working copy)
> @@ -13,9 +13,17 @@
>  if test "$proxy_mods_enable" = "no"; then
>    enable_proxy_hcheck=no
>  fi
> -dnl If enable_proxy_hcheck is unset handle it like other proxy modules
> +dnl If enable_proxy_hcheck is unset handle it like other proxy modules if
> +dnl it is able to disable itself. If not do not enable it.
>  if test -z "$enable_proxy_hcheck" ; then
> -  enable_proxy_hcheck="$proxy_mods_enable"
> +  case "$proxy_mods_enable" in
> +    yes|static|shared)
> +      enable_proxy_hcheck=no
> +      ;;
> +    *)
> +      enable_proxy_hcheck="$proxy_mods_enable"
> +      ;;
> +  esac
>  fi
>

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

Off to purge my skull of m4 syntax again with some /r/Eyebleach/

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by Ruediger Pluem <rp...@apache.org>.

On 06/21/2016 05:39 PM, William A Rowe Jr wrote:
> Just retested on 2.4.x branch, better but still problematic...
> 
> "../../httpd-2.4/configure" \
> "--prefix=/opt/apache24-apr15-ossl102" \
> "--with-apr=/opt/apr15-ossl102" \
> "--with-apr-util=/opt/apr15-ossl102" \
> "--enable-watchdog=no" \
> "--enable-proxy=yes"
> 
> checking whether to enable mod_proxy_hcheck... checking dependencies
> configure: WARNING: "mod_watchdog is disabled but required for mod_proxy_hcheck"
> configure: error: mod_proxy_hcheck has been requested but can not be built due to prerequisite failures
> checking whether to enable mod_proxy_hcheck... 
> <abort>


Would that suit better (against current 2.4.x):

Index: config.m4
===================================================================
--- config.m4   (revision 1749588)
+++ config.m4   (working copy)
@@ -13,9 +13,17 @@
 if test "$proxy_mods_enable" = "no"; then
   enable_proxy_hcheck=no
 fi
-dnl If enable_proxy_hcheck is unset handle it like other proxy modules
+dnl If enable_proxy_hcheck is unset handle it like other proxy modules if
+dnl it is able to disable itself. If not do not enable it.
 if test -z "$enable_proxy_hcheck" ; then
-  enable_proxy_hcheck="$proxy_mods_enable"
+  case "$proxy_mods_enable" in
+    yes|static|shared)
+      enable_proxy_hcheck=no
+      ;;
+    *)
+      enable_proxy_hcheck="$proxy_mods_enable"
+      ;;
+  esac
 fi

 proxy_objs="mod_proxy.lo proxy_util.lo"



Regards

R�diger


Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
Just retested on 2.4.x branch, better but still problematic...

"../../httpd-2.4/configure" \
"--prefix=/opt/apache24-apr15-ossl102" \
"--with-apr=/opt/apr15-ossl102" \
"--with-apr-util=/opt/apr15-ossl102" \
"--enable-watchdog=no" \
"--enable-proxy=yes"

checking whether to enable mod_proxy_hcheck... checking dependencies
configure: WARNING: "mod_watchdog is disabled but required for
mod_proxy_hcheck"
configure: error: mod_proxy_hcheck has been requested but can not be built
due to prerequisite failures
checking whether to enable mod_proxy_hcheck...
<abort>

On Mon, Jun 20, 2016 at 1:46 PM, Ruediger Pluem <rp...@apache.org> wrote:

>
>
> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
> > Did we miss this build breakage fix in 2.4.22?
>
> I guess so, but it only should happen with --enable-mods-shared=few which
> I guess is not that common.
>
> Regards
>
> Rüdiger
>
>

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Tue, Jun 21, 2016 at 7:17 AM, Jim Jagielski <ji...@jagunet.com> wrote:

>
> > On Jun 21, 2016, at 7:56 AM, Plüm, Rüdiger, Vodafone Group <
> ruediger.pluem@vodafone.com> wrote:
> >
> >
> >
> >> -----Original Message-----
> >> From: Jim Jagielski [mailto:jim@jaguNET.com]
> >> Sent: Dienstag, 21. Juni 2016 13:46
> >> To: dev@httpd.apache.org
> >> Subject: Re: svn commit: r1748888 -
> >> /httpd/httpd/trunk/modules/proxy/config.m4
> >>
> >> 2.4.21 was pulled for a very specific reason and was fixed to
> >> address that specific reason... The below will be in 2.4.23 for
> >> sure.
> >>
> >> The question is whether or not to pull/stop 2.4.22... since this
> >> isn't a regression per-se, I am leaning towards not unless
> >> this issue is larger than it appears... Considering that
> >> both trunk and 2.4 have this same build issue and that
> >> up until now, no one has brought it up, my thoughts is
> >> that it is not common as well.
> >
> > I think as well that it is not common, but it has been brought up by a
> user
> > (this was the trigger for me to investigate) and it is a regression in
> 2.4.x
> > as in 2.4.20 we do not have mod_proxy_hcheck and the same configure that
> runs
> > there without issue fails with 2.4.22.
>
> True enough... But, as you say below, if it was a common enough
> build setup to hit the bug, we likely would have noticed it
> by now since trunk has been this way for awhile...


> I guess it wasn't noticed by us prior to the user since I guess most of
> us build
> > at least --enable-mods-shared=most if not more and it only pops up if
> you build less.
>


Actually no, our builds as devs are far from 'common'.  We build, as
Rüdiger correctly calls out above, with only all of the features in order
to catch all of the bugs.  That is a terrific plan until someone fluxors
the config.m4 sections.

Note especially, ./configure is meant to fail-and-continue, with any
missing modules called out for why not (OpenSSL, nghttp2, libxml2
not found... disabling mod_foo). The end result is a compiling if not
complete httpd. This is not the behavior of the offending config code
introduced in 2.4.21/2.4.22, which is enough to declare the whole
thing beta quality. We don't ship 2.4 betas.

It was common enough to be called out and ignored by you during
the 2.4.21 release vote, which is why my (-0) was promoted to a (-1).
If only 2% of the users encounter this defect, and only 10k admins
attempt to roll it out, you have 200 people pissed off at your own
bad coding. That should be enough for you to consider the wisdom
of shipping the broken schema, unless you goal is simply to shove
a new module down their throats.

Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by Jim Jagielski <ji...@jaguNET.com>.
> On Jun 21, 2016, at 7:56 AM, Plüm, Rüdiger, Vodafone Group <ru...@vodafone.com> wrote:
> 
> 
> 
>> -----Original Message-----
>> From: Jim Jagielski [mailto:jim@jaguNET.com]
>> Sent: Dienstag, 21. Juni 2016 13:46
>> To: dev@httpd.apache.org
>> Subject: Re: svn commit: r1748888 -
>> /httpd/httpd/trunk/modules/proxy/config.m4
>> 
>> 2.4.21 was pulled for a very specific reason and was fixed to
>> address that specific reason... The below will be in 2.4.23 for
>> sure.
>> 
>> The question is whether or not to pull/stop 2.4.22... since this
>> isn't a regression per-se, I am leaning towards not unless
>> this issue is larger than it appears... Considering that
>> both trunk and 2.4 have this same build issue and that
>> up until now, no one has brought it up, my thoughts is
>> that it is not common as well.
> 
> I think as well that it is not common, but it has been brought up by a user
> (this was the trigger for me to investigate) and it is a regression in 2.4.x
> as in 2.4.20 we do not have mod_proxy_hcheck and the same configure that runs
> there without issue fails with 2.4.22.

True enough... But, as you say below, if it was a common enough
build setup to hit the bug, we likely would have noticed it
by now since trunk has been this way for awhile...


> I guess it wasn't noticed by us prior to the user since I guess most of us build
> at least --enable-mods-shared=most if not more and it only pops up if you build less.
> 
> Regards
> 
> Rüdiger
> 
>> 
>>> On Jun 20, 2016, at 2:46 PM, Ruediger Pluem <rp...@apache.org> wrote:
>>> 
>>> 
>>> 
>>> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
>>>> Did we miss this build breakage fix in 2.4.22?
>>> 
>>> I guess so, but it only should happen with --enable-mods-shared=few
>> which I guess is not that common.
>>> 
>>> Regards
>>> 
>>> Rüdiger
>>> 
> 


RE: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by Plüm, Rüdiger, Vodafone Group <ru...@vodafone.com>.

> -----Original Message-----
> From: Jim Jagielski [mailto:jim@jaguNET.com]
> Sent: Dienstag, 21. Juni 2016 13:46
> To: dev@httpd.apache.org
> Subject: Re: svn commit: r1748888 -
> /httpd/httpd/trunk/modules/proxy/config.m4
> 
> 2.4.21 was pulled for a very specific reason and was fixed to
> address that specific reason... The below will be in 2.4.23 for
> sure.
> 
> The question is whether or not to pull/stop 2.4.22... since this
> isn't a regression per-se, I am leaning towards not unless
> this issue is larger than it appears... Considering that
> both trunk and 2.4 have this same build issue and that
> up until now, no one has brought it up, my thoughts is
> that it is not common as well.

I think as well that it is not common, but it has been brought up by a user
(this was the trigger for me to investigate) and it is a regression in 2.4.x
as in 2.4.20 we do not have mod_proxy_hcheck and the same configure that runs
there without issue fails with 2.4.22.
I guess it wasn't noticed by us prior to the user since I guess most of us build
at least --enable-mods-shared=most if not more and it only pops up if you build less.

Regards

Rüdiger

> 
> > On Jun 20, 2016, at 2:46 PM, Ruediger Pluem <rp...@apache.org> wrote:
> >
> >
> >
> > On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
> >> Did we miss this build breakage fix in 2.4.22?
> >
> > I guess so, but it only should happen with --enable-mods-shared=few
> which I guess is not that common.
> >
> > Regards
> >
> > Rüdiger
> >


Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by Jim Jagielski <ji...@jaguNET.com>.
2.4.21 was pulled for a very specific reason and was fixed to
address that specific reason... The below will be in 2.4.23 for
sure.

The question is whether or not to pull/stop 2.4.22... since this
isn't a regression per-se, I am leaning towards not unless
this issue is larger than it appears... Considering that
both trunk and 2.4 have this same build issue and that
up until now, no one has brought it up, my thoughts is
that it is not common as well.

> On Jun 20, 2016, at 2:46 PM, Ruediger Pluem <rp...@apache.org> wrote:
> 
> 
> 
> On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
>> Did we miss this build breakage fix in 2.4.22?
> 
> I guess so, but it only should happen with --enable-mods-shared=few which I guess is not that common.
> 
> Regards
> 
> Rüdiger
> 


Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by Ruediger Pluem <rp...@apache.org>.

On 06/20/2016 07:04 PM, William A Rowe Jr wrote:
> Did we miss this build breakage fix in 2.4.22?

I guess so, but it only should happen with --enable-mods-shared=few which I guess is not that common.

Regards

R�diger


Re: svn commit: r1748888 - /httpd/httpd/trunk/modules/proxy/config.m4

Posted by William A Rowe Jr <wr...@rowe-clan.net>.
Did we miss this build breakage fix in 2.4.22?

On Fri, Jun 17, 2016 at 1:29 PM, <rp...@apache.org> wrote:

> Author: rpluem
> Date: Fri Jun 17 18:29:16 2016
> New Revision: 1748888
>
> URL: http://svn.apache.org/viewvc?rev=1748888&view=rev
> Log:
> * If enable_proxy_hcheck is unset handle it like other proxy modules
>
> Modified:
>     httpd/httpd/trunk/modules/proxy/config.m4
>
> Modified: httpd/httpd/trunk/modules/proxy/config.m4
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/config.m4?rev=1748888&r1=1748887&r2=1748888&view=diff
>
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/config.m4 (original)
> +++ httpd/httpd/trunk/modules/proxy/config.m4 Fri Jun 17 18:29:16 2016
> @@ -13,6 +13,10 @@ fi
>  if test "$proxy_mods_enable" = "no"; then
>    enable_proxy_hcheck=no
>  fi
> +dnl If enable_proxy_hcheck is unset handle it like other proxy modules
> +if test -z "$enable_proxy_hcheck" ; then
> +  enable_proxy_hcheck="$proxy_mods_enable"
> +fi
>
>  proxy_objs="mod_proxy.lo proxy_util.lo"
>  APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, ,
> $proxy_mods_enable)
>
>
>