|
From 036a83e9c300a42386cd378022420e52a43b314f Mon Sep 17 00:00:00 2001
|
|
From: Willy Tarreau <w@1wt.eu>
|
|
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
|
|
|