Ok, partly playing a bit of devils advocate below :-). On 06/25/2007 04:42 PM, [EMAIL PROTECTED] wrote: > Author: jfclere > Date: Mon Jun 25 07:42:25 2007 > New Revision: 550519 > > URL: http://svn.apache.org/viewvc?view=rev&rev=550519 > Log: > Add sticky_path to solve PR41897. > > Modified: > httpd/httpd/trunk/docs/manual/mod/mod_proxy.html.en > httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml > httpd/httpd/trunk/modules/proxy/mod_proxy.c > httpd/httpd/trunk/modules/proxy/mod_proxy.h > httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c >
> Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.h > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?view=diff&rev=550519&r1=550518&r2=550519 > ============================================================================== > --- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original) > +++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Mon Jun 25 07:42:25 2007 > @@ -365,6 +365,7 @@ > apr_thread_mutex_t *mutex; /* Thread lock for updating lb params */ > #endif > void *context; /* general purpose storage */ > + const char *sticky_path; /* URL sticky session identifier */ > }; I am missing a minor bump, since this is part of a public API. Ok, furthermore I think we need to adjust the proxy_status_hook to actually display the string the user configured and not only the path for the cookie. The same is true for the balancer manager (display wise). Missing to split the string at the | in the balancer manager when you enter new data for sticky does not really worry me because setting a new sticky for the balancer (like all other balancer parameters) does not work anyway. We should really disable this. Just to avoid confusion: Changing parameters for a worker via the balancer manager works *well* (all this is stored in shared memory). Changing parameters for a balancer itself does *not* work as the balancer configuration is not stored in shared memory and thus the change only happens in that process that processed the according GET request to the balancer manager. Doing the right thing with the note "session-sticky" and the environment variable "BALANCER_SESSION_STICKY" seems to be a bit more tricky to me. At the point of time we are currently setting these we have already "forgotten" what we used for the route (sticky / sticky_path). OTOH we currently set "session-sticky" and "BALANCER_SESSION_STICKY" only in the case that we really find a worker. We do not set them if all workers for this route / all workers in general are in error state. So moving this inside find_session_route would change this behaviour. But unseting the note and the env variable in the case of all workers being in error state seems to be the perfect trigger in a few month for the question: "Why the hell are we doing this?". So a change in behavior might be the better option here. As said: Devils advocate :-). Regards RĂ¼diger
