From f42d794d96c5a58c33637ab44ff699ab869d5caa Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 20 Oct 2020 11:54:49 +0200 Subject: [PATCH] MEDIUM: config: report that "nbproc" is deprecated As previously discussed, nbproc usage is bad, deprecated, and scheduled for removal in 2.5. If "nbproc" is found with more than one process while nbthread is not set, a warning will be emitted encouraging to remove it or to migrate to nbthread instead. This makes sure the user has an opportunity to both see the message and silence it. --- doc/configuration.txt | 7 ++++--- src/haproxy.c | 11 +++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/doc/configuration.txt b/doc/configuration.txt index b0edb963a..bd9781cd1 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -1176,14 +1176,15 @@ mworker-max-reloads SIGTERM. This option helps to keep under control the number of workers. See also "show proc" in the Management Guide. -nbproc +nbproc (deprecated) Creates processes when going daemon. This requires the "daemon" mode. By default, only one process is created, which is the recommended mode of operation. For systems limited to small sets of file descriptors per process, it may be needed to fork multiple daemons. When set to a value larger than 1, threads are automatically disabled. USING MULTIPLE PROCESSES - IS HARDER TO DEBUG AND IS REALLY DISCOURAGED. See also "daemon" and - "nbthread". + IS HARDER TO DEBUG AND IS REALLY DISCOURAGED. This directive is deprecated + and scheduled for removal in 2.5. Please use "nbthread" instead. See also + "daemon" and "nbthread". nbthread This setting is only available when support for threads was built in. It diff --git a/src/haproxy.c b/src/haproxy.c index 389abb84e..cc5cc1aea 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -1941,6 +1941,17 @@ static void init(int argc, char **argv) } } + if (global.nbproc > 1 && !global.nbthread) { + ha_warning("nbproc is deprecated!\n" + " | For suffering many limitations, the 'nbproc' directive is now deprecated\n" + " | and scheduled for removal in 2.5. Just comment it out: haproxy will use\n" + " | threads and will run on all allocated processors. You may also switch to\n" + " | 'nbthread %d' to keep the same number of processors. If you absolutely\n" + " | want to run in multi-process mode, you can silence this warning by adding\n" + " | 'nbthread 1', but then please report your use case to developers.\n", + global.nbproc); + } + err_code |= check_config_validity(); for (px = proxies_list; px; px = px->next) { struct server *srv;