https://bz.apache.org/bugzilla/show_bug.cgi?id=58934

            Bug ID: 58934
           Summary: mod_proxy initial BalancerMember settings not applied
                    to just that Proxy Balancer on startup
           Product: Apache httpd-2
           Version: 2.2.31
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy_balancer
          Assignee: [email protected]
          Reporter: [email protected]

We have multiple Proxy Balancers setup using the same BalancerMembers but
different URLs in the ProxyPass statements.  On initial startup, if mod_proxy
finds one BalancerMember with some initial settings, those carry over to all
BalancerMembers regardless of the Proxy Balancer as long as the host:port
match.  If you hit the status page, you can adjust individual BalancerMembers
accordingly.

Here is an example:

<Location /a>
        Order allow,deny
        Allow from all
        <LimitExcept GET POST>
                Deny from all
        </LimitExcept>
        ProxyPass balancer://a_Cluster/some_url
        ProxyPassReverse balancer://a_Cluster/some_url
</Location>

<Proxy balancer://a_Cluster>
  BalancerMember http://node1.com loadfactor=1 status=D
  BalancerMember http://node2.com loadfactor=1
  ProxySet lbmethod=byrequests
</Proxy>

<Location /b>
        Order allow,deny
        Allow from all
        <LimitExcept GET POST>
                Deny from all
        </LimitExcept>
        ProxyPass balancer://b_Cluster/some_other_url
        ProxyPassReverse balancer://b_Cluster/some_other_url
</Location>

<Proxy balancer://b_Cluster>
  BalancerMember http://node1.com loadfactor=1
  BalancerMember http://node2.com loadfactor=1
  ProxySet lbmethod=byrequests
</Proxy>

<Location /c>
        Order allow,deny
        Allow from all
        <LimitExcept GET POST>
                Deny from all
        </LimitExcept>
        ProxyPass balancer://c_Cluster/yet_another_url
        ProxyPassReverse balancer://c_Cluster/yet_another_url
</Location>

<Proxy balancer://c_Cluster>
  BalancerMember http://node1.com loadfactor=1
  ProxySet lbmethod=byrequests
</Proxy>

We would like to have the first BalancerMember in 'a_Cluster' come up disabled
but the others using the same host and port to be enabled in the other
LoadBalancers.

When Apache starts, you get the following:

LoadBalancer Status for balancer://a_cluster
Worker URL    Route    RouteRedir    Factor    Set    Status    Elected    To  
 From
http://node1.com            1    0    Dis    0    0    0
http://node2.com            1    0    Ok    0    0    0

LoadBalancer Status for balancer://b_cluster
Worker URL    Route    RouteRedir    Factor    Set    Status    Elected    To  
 From
http://node1.com            1    0    Dis    0    0    0
http://node2.com            1    0    Ok    0    0    0

LoadBalancer Status for balancer://c_cluster
Worker URL    Route    RouteRedir    Factor    Set    Status    Elected    To  
 From
http://node1.com            1    0    Dis    0    0    0


So even though only the first LoadBalancer had the first Worker URL set for
disabled, all that match the host:port are all set disabled.  This does the
same thing if you try and use status=H as well.

This also happens if you use 'ibset'.

Using 'factor' only sets the one for that LoadBalancer as I would expect.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to