From eb791e03b5c5abfddb24a439fa6434788db026b7 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 16 Sep 2014 15:11:04 +0200 Subject: [PATCH] MEDIUM: config: only warn if stats are attached to multi-process bind directives Some users want to have a stats frontend with one line per process, but while 100% valid and safe, the config parser emits a warning. Relax this check to ensure that the warning is only emitted if at least one of the listeners is bound to multiple processes, or if the directive is placed in a backend called from multiple processes (since in this case we don't know if it's safe). --- src/cfgparse.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cfgparse.c b/src/cfgparse.c index 05b8f8a11..970d353e0 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -7323,8 +7323,19 @@ out_uri_auth_compat: if (nbproc > 1) { if (curproxy->uri_auth) { - Warning("Proxy '%s': in multi-process mode, stats will be limited to process assigned to the current request.\n", - curproxy->id); + int count, maxproc = 0; + + list_for_each_entry(bind_conf, &curproxy->conf.bind, by_fe) { + count = popcount(bind_conf->bind_proc); + if (count > maxproc) + maxproc = count; + } + /* backends have 0, frontends have 1 or more */ + if (maxproc != 1) + Warning("Proxy '%s': in multi-process mode, stats will be" + " limited to process assigned to the current request.\n", + curproxy->id); + if (!LIST_ISEMPTY(&curproxy->uri_auth->admin_rules)) { Warning("Proxy '%s': stats admin will not work correctly in multi-process mode.\n", curproxy->id);