From: Willy Tarreau Date: Tue, 20 Oct 2020 09:54:49 +0000 (+0200) Subject: MEDIUM: config: report that "nbproc" is deprecated X-Git-Tag: v2.3-dev8~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f42d794d96c5a58c33637ab44ff699ab869d5caa;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index b0edb963ad..bd9781cd1f 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 389abb84ea..cc5cc1aeac 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;