From: Amaury Denoyelle Date: Tue, 2 Dec 2025 16:29:19 +0000 (+0100) Subject: OPTIM/MINOR: proxy: do not init proxy management task if unused X-Git-Tag: v3.4-dev2~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4a17eb36698c927de1c3171236fcc5a6997721a;p=thirdparty%2Fhaproxy.git OPTIM/MINOR: proxy: do not init proxy management task if unused Each proxy has its owned task for internal purpose. Currently, it is only used either by frontends or if a stick-table is present. This commit rendres the task allocation optional to only the required case. Thus, it is not allocated anymore for backend only proxies without stick-table. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 5a704084e..8b996f238 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -4357,16 +4357,21 @@ init_proxies_list_stage2: bind_conf->xprt->destroy_bind_conf(bind_conf); } - /* create the task associated with the proxy */ - curproxy->task = task_new_anywhere(); - if (curproxy->task) { - curproxy->task->context = curproxy; - curproxy->task->process = manage_proxy; - curproxy->flags |= PR_FL_READY; - } else { - ha_alert("Proxy '%s': no more memory when trying to allocate the management task\n", - curproxy->id); - cfgerr++; + /* Create the task associated with the proxy. Only necessary + * for frontend or if a stick-table is defined. + */ + if ((curproxy->cap & PR_CAP_FE) || (curproxy->table && curproxy->table->current)) { + curproxy->task = task_new_anywhere(); + if (curproxy->task) { + curproxy->task->context = curproxy; + curproxy->task->process = manage_proxy; + curproxy->flags |= PR_FL_READY; + } + else { + ha_alert("Proxy '%s': no more memory when trying to allocate the management task\n", + curproxy->id); + cfgerr++; + } } }