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.
This commit is contained in:
Amaury Denoyelle 2025-12-02 17:29:19 +01:00
parent c397f6fc9a
commit a4a17eb366

View File

@ -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++;
}
}
}