BUG/MEDIUM: log: issue mixing sampled to not sampled log servers.
A boolean was mistakenly declared 'static THREAD_LOCAL' causing
the probe of a log to a 'not sampled' log server conditionned by
the last evaluated 'sampled log' server test on the same thread.
This results to unpredictable drops of logs on 'not sampled'
log servers as soon a 'sampled' log server is declared.
This patch removes the static THREAD_LOCAL attribute from this
boolean, fixing the issue and allowing to mix 'sampled' and
'not sampled' servers.
This fix should be backported in any branches which includes
the log sampling feature.
(cherry picked from commit 2f4cc28e0f1c8c3deca8b1b7fa446c6523dcc93c)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 9ce61f6d578876f1eda258d4cfad997e09c140a4)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit b2bb526fa46b5e2119683d60e9a7ddefad801965)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/log.c b/src/log.c
index 5accad2..84e12b6 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1771,7 +1771,7 @@
/* Send log messages to syslog server. */
nblogger = 0;
list_for_each_entry(logsrv, logsrvs, list) {
- static THREAD_LOCAL int in_range = 1;
+ int in_range = 1;
/* we can filter the level of the messages that are sent to each logger */
if (level > logsrv->level)