From 032e700e8bd1cd947d1cb7028b0dda102419cbdd Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 27 Apr 2022 17:50:53 +0200 Subject: [PATCH] CLEANUP: errors: also call deinit_errors_buffers() on deinit() Tim reported in issue #1676 that we don't release startup logs if we warn during startup and quit before creating threads (e.g. -c -f ...). Let's subscribe deinit_errors_buffers() to both thread's end and deinit. That's OK since it uses both per-thread and global variables, and is idempotent. --- src/errors.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/errors.c b/src/errors.c index 993b6ae58..109ec0aaa 100644 --- a/src/errors.c +++ b/src/errors.c @@ -375,4 +375,6 @@ static void deinit_errors_buffers() ha_free(&usermsgs_ctx.str.area); } +/* errors might be used in threads and even before forking, thus 2 deinit */ REGISTER_PER_THREAD_FREE(deinit_errors_buffers); +REGISTER_POST_DEINIT(deinit_errors_buffers);