httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 34844] - Mod_proxy_balancer session state not working
Date Sat, 15 Oct 2005 17:11:24 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=34844>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=34844





------- Additional Comments From tsb@komplett.no  2005-10-15 19:11 -------
Created an attachment (id=16701)
 --> (http://issues.apache.org/bugzilla/attachment.cgi?id=16701&action=view)
Propose URL decoding of stickysession route

I suspect current httpd-2.2.x branch mod_proxy_balancer stickysession doesn't
work _at all_ when using cookie-based stickysessions, at least not when the
cookie value is URL encoded (as it was in my case).  Found this by load
balancing between two servers with different content, and I was sent back and
forth between them; definitely not sticky.

I got Found value <sessionid> for stickysession <stickysession>, but _not_ any
Found route <route> when looking at the debug log.

The <sessionid> was logged as "%2EW1" and not ".W1", though.  It seems as if
mod_proxy_balancer.c checks against '.', but doesn't URL decode the string
first (if it had, it shouldn't have logged it encoded):

    ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
			    "proxy: BALANCER: Found value %s for "
			    "stickysession %s", *route, balancer->sticky);
    /*
     * If we found a value for sticksession, find the first '.' within.
     * Everything after '.' (if present) is our route.
     */
    if ((*route) && ((*route = strchr(*route, '.')) != NULL ))
	(*route)++;
    if ((*route) && (**route)) {
	ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
				  "proxy: BALANCER: Found route %s", *route);

(Note that the backend server is running IIS.  I'm assuming it's doing the
right thing of encoding the cookie values; I'm not doing that explicitly.)

The attached patch seems to fix this in my case, and something like this should
probably be included in mod_proxy_balancer.c.

Note: I'm not sure if this is the proper Apache way of doing things.  I
borrowed decodeenc() from mod_proxy_ftp.c, so it should probably be refactored
into a common function, if it's not already in APR (which I guess it may be). 
Also, I had to change from (void)decodeenc(route) to (void)decodeenc(*route) -
not sure if that's a problem in mod_proxy_ftp.c, didn't check that closely.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message