From: Yann Ylavic Date: Thu, 27 Aug 2015 11:45:06 +0000 (+0000) Subject: Revert r1696960 (see commit thread). X-Git-Tag: 2.5.0-alpha~2913 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1ad117a18970ba8135cc98f8424ac002530b6db;p=thirdparty%2Fapache%2Fhttpd.git Revert r1696960 (see commit thread). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698123 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 02f4fdf9ef0..0420ab900cd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,6 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 - *) mod_proxy_balancer: Fix balancers and balancer members reuse on - restart when new ones are added. PR 58024. [Yann Ylavic] - *) mod_socache_memcache: Add the 'MemcacheConnTTL' directive to control how long to keep idle connections with the memcache server(s). Change default value from 600 usec (!) to 15 sec. PR 58091 diff --git a/docs/log-message-tags/next-number b/docs/log-message-tags/next-number index ec21808e298..ff481a2e553 100644 --- a/docs/log-message-tags/next-number +++ b/docs/log-message-tags/next-number @@ -1 +1 @@ -2966 +2964 diff --git a/modules/proxy/mod_proxy_balancer.c b/modules/proxy/mod_proxy_balancer.c index be77ef155ec..5e1d78bc540 100644 --- a/modules/proxy/mod_proxy_balancer.c +++ b/modules/proxy/mod_proxy_balancer.c @@ -761,11 +761,8 @@ static int balancer_post_config(apr_pool_t *pconf, apr_pool_t *plog, char *id; proxy_balancer *balancer; ap_slotmem_type_t type; - apr_size_t attached_size; - unsigned int attached_num; void *sconf = s->module_config; conf = (proxy_server_conf *)ap_get_module_config(sconf, &proxy_module); - /* * During create_proxy_config() we created a dummy id. Now that * we have identifying info, we can create the real id @@ -797,39 +794,11 @@ static int balancer_post_config(apr_pool_t *pconf, apr_pool_t *plog, (int)ALIGNED_PROXY_BALANCER_SHARED_SIZE, (int)conf->balancers->nelts, conf->max_balancers); - /* First try to attach() since the number of configured balancers - * may have changed during restart, and we don't want create() to - * fail because the overall size * number of entries is not stricly - * identical to the previous run. There may still be enough room - * for this new run thanks to bgrowth margin, so if attach() - * succeeds we can only check for the number of available entries - * to be *greater or* equal to what we need now. If attach() fails - * we simply fall back to create(). - */ - rv = storage->attach(&new, conf->id, - &attached_size, &attached_num, - pconf); - if (rv != APR_SUCCESS) { - rv = storage->create(&new, conf->id, - ALIGNED_PROXY_BALANCER_SHARED_SIZE, - conf->max_balancers, type, pconf); - } - else { - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(02964) - "Balancers attached: %d, %d (%d)", - (int)ALIGNED_PROXY_BALANCER_SHARED_SIZE, - (int)attached_num, conf->max_balancers); - if (attached_size == ALIGNED_PROXY_BALANCER_SHARED_SIZE - && attached_num >= conf->balancers->nelts) { - conf->max_balancers = attached_num; - } - else { - rv = APR_ENOSPC; - } - } + rv = storage->create(&new, conf->id, + ALIGNED_PROXY_BALANCER_SHARED_SIZE, + conf->max_balancers, type, pconf); if (rv != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, APLOGNO(01179) - "balancer slotmem create or attach failed"); + ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, APLOGNO(01179) "balancer slotmem_create failed"); return !OK; } conf->bslot = new; @@ -895,32 +864,11 @@ static int balancer_post_config(apr_pool_t *pconf, apr_pool_t *plog, (int)ALIGNED_PROXY_WORKER_SHARED_SIZE, (int)balancer->max_workers, i); - /* try to attach first (see rationale from balancers above) */ - rv = storage->attach(&new, balancer->s->sname, - &attached_size, &attached_num, - pconf); - if (rv != APR_SUCCESS) { - rv = storage->create(&new, balancer->s->sname, - ALIGNED_PROXY_WORKER_SHARED_SIZE, - balancer->max_workers, type, pconf); - } - else { - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(02965) - "Workers attached: %s (%s), %d, %d (%d) [%u]", - balancer->s->name, balancer->s->sname, - (int)ALIGNED_PROXY_WORKER_SHARED_SIZE, - (int)attached_num, balancer->max_workers, i); - if (attached_size == ALIGNED_PROXY_WORKER_SHARED_SIZE - && attached_num >= balancer->workers->nelts) { - balancer->max_workers = attached_num; - } - else { - rv = APR_ENOSPC; - } - } + rv = storage->create(&new, balancer->s->sname, + ALIGNED_PROXY_WORKER_SHARED_SIZE, + balancer->max_workers, type, pconf); if (rv != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, APLOGNO(01185) - "worker slotmem create or attach failed"); + ap_log_error(APLOG_MARK, APLOG_EMERG, rv, s, APLOGNO(01185) "worker slotmem_create failed"); return !OK; } balancer->wslot = new;