From 036a83e9c300a42386cd378022420e52a43b314f Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 16 Sep 2014 15:11:04 +0200 Subject: [PATCH 11/13] 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). (cherry picked from commit eb791e03b5c5abfddb24a439fa6434788db026b7) --- src/cfgparse.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cfgparse.c b/src/cfgparse.c index f3907bf..5668393 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -7189,8 +7189,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); -- 1.8.5.5