From 223caab96fb02d2169f8ed7fa16a54167873c0d8 Mon Sep 17 00:00:00 2001 From: Valentine Krasnobaeva Date: Tue, 15 Oct 2024 15:21:47 +0200 Subject: [PATCH] MINOR: cfgparse: fix *thread keywords sensitive to global section position *thread keywords parsers are sensitive to global section position. If they are present there, the global section must be the first section in the configuration. *thread parsers logic is based on non_global_section_parsed counter. So, we need to reset it explicitly before the second configuration read done by worker or in a standalone mode. --- src/haproxy.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/haproxy.c b/src/haproxy.c index 0ecf42a21..31fb7fe5c 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2214,6 +2214,13 @@ static void init(int argc, char **argv) /* worker, daemon, foreground mode reads the rest of the config */ if (!(global.mode & MODE_MWORKER)) { + /* nbthread and *thread keywords parsers are sensible to global + * section position, it should be placed as the first in + * the configuration, if these keywords are inside. So, let's + * reset non_global_section_parsed counter for the second + * configuration reading + */ + non_global_section_parsed = 0; if (read_cfg(progname) < 0) { list_for_each_entry_safe(cfg, cfg_tmp, &cfg_cfgfiles, list) { ha_free(&cfg->content);