]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: log: issue mixing sampled to not sampled log servers.
authorEmeric Brun <ebrun@haproxy.com>
Fri, 10 Jul 2020 13:47:11 +0000 (15:47 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 15 Jul 2020 15:50:12 +0000 (17:50 +0200)
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.

src/log.c

index 937b675a73a4d09831ca9a759e1c427792e2215a..9a866f1a2cdfbf9c6e378c1ea10db37771c4133d 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -1832,7 +1832,7 @@ void __send_log(struct list *logsrvs, struct buffer *tag, int level,
        /* 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)