Bug 53646 - Invalid uniformly distributed balancing of requests when loadfactor of balancer members is equal
Summary: Invalid uniformly distributed balancing of requests when loadfactor of balanc...
Status: RESOLVED LATER
Alias: None
Product: Apache httpd-2
Classification: Unclassified
Component: mod_proxy_balancer (show other bugs)
Version: 2.2.22
Hardware: Sun Solaris
: P2 normal (vote)
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
URL:
Keywords: MassUpdate
Depends on:
Blocks:
 
Reported: 2012-08-02 15:51 UTC by Holger.King
Modified: 2018-11-07 21:08 UTC (History)
0 users



Attachments
JSESSIONID cookie suffixed by Apache2 2.2.22 load balancer (44.05 KB, image/png)
2012-08-02 15:51 UTC, Holger.King
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Holger.King 2012-08-02 15:51:44 UTC
Created attachment 29158 [details]
JSESSIONID cookie suffixed by Apache2 2.2.22 load balancer

Dear HTTP community,

currently, we're having the following Apache 2.2.22 web server configuration to allow a uniformly distributed balancing of HTTP requests to the two running Apache Tomcat instances behind.

Both Apache Tomcat instances are located on invidual but identital physical hardware.

The configuration looks like:

<Proxy balancer://fs4_javaclient_over_https>
    BalancerMember ajp://rb-wcmstc1.de.bosch.com:8009 loadfactor=50 ping=5 retry=10 route=rb-wcmstc1 connectiontimeout=5 timeout=300
    BalancerMember ajp://rb-wcmstc2.de.bosch.com:8009 loadfactor=50 ping=5 retry=10 route=rb-wcmstc2 connectiontimeout=5 timeout=300

    ProxySet stickysession=JSESSIONID|jsessionid
    ProxySet lbmethod=byrequests
    ProxySet scolonpathdelim=On
    ProxySet nofailover=Off
</Proxy>

<Proxy balancer://fs4_webclient_over_https>
    BalancerMember ajp://rb-wcmstc1.de.bosch.com:8010 loadfactor=50 ping=5 retry=10 route=rb-wcmstc1 connectiontimeout=5 timeout=300
    BalancerMember ajp://rb-wcmstc2.de.bosch.com:8010 loadfactor=50 ping=5 retry=10 route=rb-wcmstc2 connectiontimeout=5 timeout=300
    ProxySet stickysession=JSESSIONID|jsessionid
    ProxySet lbmethod=byrequests
    ProxySet scolonpathdelim=On
    ProxySet nofailover=Off
</Proxy>

RewriteCond %{REQUEST_URI} !^/index.html
RewriteCond %{REQUEST_URI} !^/balancer-manager
RewriteCond %{REQUEST_URI} !^/server-*
RewriteRule ^/(.*) balancer://fs4_webclient_over_https/$1 [proxy,last]


Now, what happens:
- initially, balancing is - as expected - uniformly distributed
- after a while, the balancing behaviour changes on one of the two balancing members

If we restart the Apache2 2.2.22 web server the problem has gone - for a short moment. This could be proven, when taking a closer look to the JSESSIONID cookies suffixed by Apache2 with the "route" value of the "BalancerMember". Details see screenshot attached!
Comment 1 Holger.King 2012-08-02 16:00:18 UTC
For sure, during the test, after each request, the COOKIES are deleted in the browser (here: Firefox). Then, the new request, shows the same COOKIE suffix again.
Comment 2 Holger.King 2012-08-02 16:14:36 UTC
The first "Proxy balancer://fs4_javaclient_over_https" is called when, the following rules match:

RewriteCond %{REQUEST_URI} ^/servlet/ClientIO [NC]
RewriteRule ^/(.*) balancer://fs4_javaclient_over_https/$1 [proxy,last]
Comment 3 William A. Rowe Jr. 2018-11-07 21:08:50 UTC
Please help us to refine our list of open and current defects; this is a mass update of old and inactive Bugzilla reports which reflect user error, already resolved defects, and still-existing defects in httpd.

As repeatedly announced, the Apache HTTP Server Project has discontinued all development and patch review of the 2.2.x series of releases. The final release 2.2.34 was published in July 2017, and no further evaluation of bug reports or security risks will be considered or published for 2.2.x releases. All reports older than 2.4.x have been updated to status RESOLVED/LATER; no further action is expected unless the report still applies to a current version of httpd.

If your report represented a question or confusion about how to use an httpd feature, an unexpected server behavior, problems building or installing httpd, or working with an external component (a third party module, browser etc.) we ask you to start by bringing your question to the User Support and Discussion mailing list, see [https://httpd.apache.org/lists.html#http-users] for details. Include a link to this Bugzilla report for completeness with your question.

If your report was clearly a defect in httpd or a feature request, we ask that you retest using a modern httpd release (2.4.33 or later) released in the past year. If it can be reproduced, please reopen this bug and change the Version field above to the httpd version you have reconfirmed with.

Your help in identifying defects or enhancements still applicable to the current httpd server software release is greatly appreciated.