stable-bot: WARNING: 31 bug fixes in queue for next release - 1.9
Hi, This is a friendly bot that watches fixes pending for the next haproxy-stable release! One such e-mail is sent periodically once patches are waiting in the last maintenance branch, and an ideal release date is computed based on the severity of these fixes and their merge date. Responses to this mail must be sent to the mailing list. Last release 1.9.13 was issued on 2019/11/25. There are currently 31 patches in the queue cut down this way: - 2 MAJOR, first one merged on 2019/12/10 - 11 MEDIUM, first one merged on 2019/12/05 - 18 MINOR, first one merged on 2019/11/25 Thus the computed ideal release date for 1.9.14 would be 2019/12/23, which was one week ago. The current list of patches in the queue is: - MAJOR : task: add a new TASK_SHARED_WQ flag to fix foreing requeuing - MAJOR : dns: add minimalist error processing on the Rx path - MEDIUM : listener/thread: fix a race when pausing a listener - MEDIUM : stream-int: don't subscribed for recv when we're trying to flush data - MEDIUM : ssl: Don't set the max early data we can receive too early. - MEDIUM : listener/threads: fix a remaining race in the listener's accept() - MEDIUM : checks: Make sure we set the task affinity just before connecting. - MEDIUM : mux-h1: Never reuse H1 connection if a shutw is pending - MEDIUM : kqueue: Make sure we report read events even when no data. - MEDIUM : fd/threads: fix a concurrency issue between add and rm on the same fd - MEDIUM : proto_udp/threads: recv() and send() must not be exclusive. - MEDIUM : stream: address a very rare unhandled connection issue - MEDIUM : tasks: Make sure we switch wait queues in task_set_affinity(). - MINOR : tasks: only requeue a task if it was already in the queue - MINOR : server: make "agent-addr" work on default-server line - MINOR : listener/threads: always use atomic ops to clear the FD events - MINOR : stream: init variables when the list is empty - MINOR : sample: fix the closing bracket and LF in the debug converter - MINOR : ssl: openssl-compat: 1.9 uses OPENSSL_VERSION, not HA_OPENSSL_VERSION - MINOR : proxy: make soft_stop() also close FDs in LI_PAUSED state - MINOR : listener: do not immediately resume on transient error - MINOR : mworker: properly pass SIGTTOU/SIGTTIN to workers - MINOR : mux-h1: Fix conditions to know whether or not we may receive data - MINOR : log: fix minor resource leaks on logformat error path - MINOR : http-htx: Don't make http_find_header() fail if the value is empty - MINOR : ssl: certificate choice can be unexpected with openssl >= 1.1.1 - MINOR : listener: also clear the error flag on a paused listener - MINOR : listener: fix off-by-one in state name check - MINOR : ssl: openssl-compat: Fix getm_ defines - MINOR : mux-h1: Don't rely on CO_FL_SOCK_RD_SH to set H1C_F_CS_SHUTDOWN - MINOR : sample: always check converters' arguments --- The haproxy stable-bot is freely provided by HAProxy Technologies to help improve the quality of each HAProxy release. If you have any issue with these emails or if you want to suggest some improvements, please post them on the list so that the solutions suiting the most users can be found.
stable-bot: WARNING: 17 bug fixes in queue for next release - 1.8
Hi, This is a friendly bot that watches fixes pending for the next haproxy-stable release! One such e-mail is sent periodically once patches are waiting in the last maintenance branch, and an ideal release date is computed based on the severity of these fixes and their merge date. Responses to this mail must be sent to the mailing list. Last release 1.8.23 was issued on 2019/11/25. There are currently 17 patches in the queue cut down this way: - 1 MAJOR, first one merged on 2019/12/10 - 5 MEDIUM, first one merged on 2019/12/05 - 11 MINOR, first one merged on 2019/12/05 Thus the computed ideal release date for 1.8.24 would be 2019/12/24, which was within the last week. The current list of patches in the queue is: - MAJOR : dns: add minimalist error processing on the Rx path - MEDIUM : listener/thread: fix a race when pausing a listener - MEDIUM : listener/threads: fix a remaining race in the listener's accept() - MEDIUM : kqueue: Make sure we report read events even when no data. - MEDIUM : ssl: Don't set the max early data we can receive too early. - MEDIUM : proto_udp/threads: recv() and send() must not be exclusive. - MINOR : server: make "agent-addr" work on default-server line - MINOR : ssl: certificate choice can be unexpected with openssl >= 1.1.1 - MINOR : proxy: make soft_stop() also close FDs in LI_PAUSED state - MINOR : listener/threads: always use atomic ops to clear the FD events - MINOR : listener: fix off-by-one in state name check - MINOR : listener: do not immediately resume on transient error - MINOR : mworker: properly pass SIGTTOU/SIGTTIN to workers - MINOR : sample: fix the closing bracket and LF in the debug converter - MINOR : sample: always check converters' arguments - MINOR : log: fix minor resource leaks on logformat error path - MINOR : listener: also clear the error flag on a paused listener --- The haproxy stable-bot is freely provided by HAProxy Technologies to help improve the quality of each HAProxy release. If you have any issue with these emails or if you want to suggest some improvements, please post them on the list so that the solutions suiting the most users can be found.
[PATCH] MINOR: config: disable busy polling on old processes
in the context of seamless reload and busy polling, older processes will create unecessary cpu conflicts; we can assume there is no need for busy polling for old processes which are waiting to be terminated. This patch is not a bug fix itself but might be a good stability improvment when you are un the context of frequent seamless reloads with a high "hard-stop-after" value; for that reasons I think this patch should be backported in all 2.x versions. Signed-off-by: William Dauchy --- doc/configuration.txt | 3 +++ src/proxy.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/doc/configuration.txt b/doc/configuration.txt index bfc8b903..c8e13192 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -1475,6 +1475,9 @@ busy-polling default. If it has been enabled, it may still be forcibly disabled by prefixing it with the "no" keyword. It is ignored by the "select" and "poll" pollers. + This option is automatically disabled on old processes in the context of + seamless reload; it avoids too much cpu conflicts when multiple processes + stay around for some time waiting for the end of their current connections. max-spread-checks By default, haproxy tries to spread the start of health checks across the diff --git a/src/proxy.c b/src/proxy.c index a5570daf..9448d1a3 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1116,6 +1116,8 @@ void soft_stop(void) struct task *task; stopping = 1; + /* disable busy polling to avoid cpu eating for the new process */ + global.tune.options &= ~GTUNE_BUSY_POLLING; if (tick_isset(global.hard_stop_after)) { task = task_new(MAX_THREADS_MASK); if (task) { -- 2.24.1