Looks like a good direction. From PR62557, the observed modules to be adjusted, to consume the new opt fn are;
--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -423,6 +424,9 @@ SET(mod_http2_extra_sources modules/http2/h2_task.c modules/http2/h2_util.c modules/http2/h2_workers.c ) +SET(mod_lbmethod_bybusyness_extra_libs mod_proxy) +SET(mod_lbmethod_byrequests_extra_libs mod_proxy) +SET(mod_lbmethod_bytraffic_extra_libs mod_proxy) SET(mod_ldap_extra_defines LDAP_DECLARE_EXPORT) SET(mod_ldap_extra_libs wldap32) SET(mod_ldap_extra_sources And this corresponds with mod_lbmethod_bybusyness.c: ap_proxy_balancer_get_best_worker(balancer, r, is_best_bybusyness, mod_lbmethod_byrequests.c: proxy_worker *worker = ap_proxy_balancer_get_best_worker(balancer, r, is_best_byrequests, &total_factor); mod_lbmethod_bytraffic.c: return ap_proxy_balancer_get_best_worker(balancer, r, is_best_bytraffic, This patch in 62557 can be ignored once the new optional entry point is used instead, and these three modules may be loaded again prior to mod_proxy in httpd.conf. On Fri, Jul 20, 2018 at 5:13 AM, Ruediger Pluem <rpl...@apache.org> wrote: > > > On 07/19/2018 08:24 PM, William A Rowe Jr wrote: > > On Thu, May 31, 2018 at 8:24 AM, <j...@apache.org <mailto:j...@apache.org>> > wrote: > > > > Author: jim > > Date: Thu May 31 13:24:04 2018 > > New Revision: 1832609 > > > > URL: http://svn.apache.org/viewvc?rev=1832609&view=rev < > http://svn.apache.org/viewvc?rev=1832609&view=rev> > > Log: > > Merge r1828890, r1832500 from trunk: > > > > [...] > > > > URL: > > http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/ > modules/proxy/balancers/mod_lbmethod_byrequests.c?rev= > 1832609&r1=1832608&r2=1832609&view=diff > > <http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/ > modules/proxy/balancers/mod_lbmethod_byrequests.c?rev= > 1832609&r1=1832608&r2=1832609&view=diff> > > ============================================================ > ================== > > --- > > httpd/httpd/branches/2.4.x/modules/proxy/balancers/mod_lbmethod_byrequests.c > (original) > > +++ > > httpd/httpd/branches/2.4.x/modules/proxy/balancers/mod_lbmethod_byrequests.c > Thu May 31 13:24:04 2018 > > > > [...] > > > > @@ -70,82 +77,17 @@ static int (*ap_proxy_retry_worker_fn)(c > > * b a d c d a c d b d ... > > * > > */ > > - > > static proxy_worker *find_best_byrequests(proxy_balancer *balancer, > > request_rec *r) > > { > > - int i; > > int total_factor = 0; > > > > [...] > > > > + proxy_worker *worker = ap_proxy_balancer_get_best_worker(balancer, > r, is_best_byrequests, &total_factor); > > > > > > This introduced a new hard runtime config ordering problem on > mod_lbmethod_byrequest.so, which must now be loaded AFTER > > mod_proxy.so. > > > > This was not previously true, as illustrated by mod_lbmethod_heartbeat, > using the ap_proxy_retry_worker using an > > optional function. > > > > lbmethod sorts before proxy, fwiw. > > > > Something like the attached? The mod_lbmethod_byrequests.c part needs to > be done for lb modules though. > > Regards > > RĂ¼diger > > > >