From f5b196899fbab73286d791739111205b60fb4a20 Mon Sep 17 00:00:00 2001 From: Graham Leggett Date: Sun, 13 Jan 2013 12:20:35 +0000 Subject: [PATCH] mod_proxy: non-existance of byrequests is not an immediate error trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1428916 Submitted by: jim Reviewed by: humbedooh, minfrin git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1432600 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ STATUS | 5 ----- modules/proxy/proxy_util.c | 20 +++++++++++++------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CHANGES b/CHANGES index 111b7961f0..51ac42fe8f 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.4.4 + * mod_proxy: non-existance of byrequests is not an immediate error. + [Jim Jagielski] + *) mod_proxy_balancer: Improve output of balancer-manager (re: Drn, Dis, Ign, Stby). PR 52478 [Danijel ] diff --git a/STATUS b/STATUS index 4db9300007..e57d12c9a8 100644 --- a/STATUS +++ b/STATUS @@ -91,11 +91,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_proxy: non-existance of byrequests is not an immediate error - trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1428916 - 2.4.x patch: trunk patch works - +1: jim, humbedooh, minfrin - * mod_slotmem_shm: Fix mistaken reset of num_free for restored shm trunk patch: https://svn.apache.org/viewvc?view=revision&revision=1430869 2.4.x patch: trunk patch works diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index 110a00d182..38976f7e7e 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -1149,13 +1149,10 @@ PROXY_DECLARE(char *) ap_proxy_define_balancer(apr_pool_t *p, memset(*balancer, 0, sizeof(proxy_balancer)); /* - * NOTE: The default method is byrequests, which we assume - * exists! + * NOTE: The default method is byrequests - if it doesn't + * exist, that's OK at this time. We check when we share and sync */ lbmethod = ap_lookup_provider(PROXY_LBMETHOD, "byrequests", "0"); - if (!lbmethod) { - return "Can't find 'byrequests' lb method"; - } (*balancer)->workers = apr_array_make(p, 5, sizeof(proxy_worker *)); (*balancer)->gmutex = NULL; @@ -1213,9 +1210,13 @@ PROXY_DECLARE(apr_status_t) ap_proxy_share_balancer(proxy_balancer *balancer, balancer->s->index = i; /* the below should always succeed */ lbmethod = ap_lookup_provider(PROXY_LBMETHOD, balancer->s->lbpname, "0"); - if (lbmethod) + if (lbmethod) { balancer->lbmethod = lbmethod; - + } else { + ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, APLOGNO(02432) + "Cannot find LB Method: %s", balancer->s->lbpname); + return APR_EINVAL; + } if (*balancer->s->nonce == PROXY_UNSET_NONCE) { char nonce[APR_UUID_FORMATTED_LENGTH + 1]; apr_uuid_t uuid; @@ -2701,7 +2702,12 @@ PROXY_DECLARE(apr_status_t) ap_proxy_sync_balancer(proxy_balancer *b, server_rec lbmethod = ap_lookup_provider(PROXY_LBMETHOD, b->s->lbpname, "0"); if (lbmethod) { b->lbmethod = lbmethod; + } else { + ap_log_error(APLOG_MARK, APLOG_CRIT, 0, s, APLOGNO(02433) + "Cannot find LB Method: %s", b->s->lbpname); + return APR_EINVAL; } + /* worker sync */ /* -- 2.40.0