From b9536717cdf880b82d1ad404606c95d0426fb1b9 Mon Sep 17 00:00:00 2001 From: Valentine Krasnobaeva Date: Tue, 19 Nov 2024 10:32:28 +0100 Subject: [PATCH] BUG/MINOR: mworker-prog: don't warn about deprecated section with expose-deprecated-directives As master parses now expose-deprecated-directives option, let's emit warning about deprecated 'progam' section only in case, if this option wasn't set in the 'global' section. This allows to people, who don't prefer to remove the 'program' section immediately to continue to start the process in zero-warning mode. Adjust the warning message accordingly and mcli_start_progs.vtc test. As expose-deprecated-directives option is a 'global' section keyword, this section must always precede any 'program' section, if users still continue to keep 'program' section. This doesn't need to be backported, as related to the latest changes in the master-worker architecture. --- reg-tests/mcli/mcli_start_progs.vtc | 2 ++ src/mworker-prog.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/reg-tests/mcli/mcli_start_progs.vtc b/reg-tests/mcli/mcli_start_progs.vtc index c812288e01..489efff7ee 100644 --- a/reg-tests/mcli/mcli_start_progs.vtc +++ b/reg-tests/mcli/mcli_start_progs.vtc @@ -9,6 +9,8 @@ server s1 { } -start haproxy h1 -W -S -conf { + global + expose-deprecated-directives defaults mode http timeout connect "${HAPROXY_TEST_TIMEOUT-5s}" diff --git a/src/mworker-prog.c b/src/mworker-prog.c index 88ff1fc9f8..6aa9ec8ce8 100644 --- a/src/mworker-prog.c +++ b/src/mworker-prog.c @@ -194,9 +194,15 @@ int cfg_parse_program(const char *file, int linenum, char **args, int kwm) goto error; } - ha_warning("parsing [%s:%d]: The '%s' section is deprecated and will eventually be removed, please consider " - "using a process manager instead, such as sysvinit, systemd, supervisord or s6\n", - file, linenum, args[0]); + if (!deprecated_directives_allowed) { + ha_warning("parsing [%s:%d]: The 'program' section is deprecated and will be eventually removed, " + "it can be still allowed by setting 'expose-deprecated-directives' keyword in the 'global' " + "section defined before any 'program' section. Please, consider to use a process manager instead " + "of 'program' section, such as sysvinit, systemd, supervisord or s6.\n", + file, linenum); + err_code |= ERR_ALERT | ERR_ABORT; + goto error; + } LIST_APPEND(&proc_list, &ext_child->list);