From cb01f5daa72eec595407a85959d301960d472c93 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 4 May 2023 16:28:30 +0200 Subject: [PATCH] BUG/MINOR: debug: do not emit empty lines in thread dumps In 2.3, commit 471425f51 ("BUG/MINOR: debug: Don't dump the lua stack if it is not initialized") introduced the possibility to emit an empty line when there's no Lua info to dump. The problem is that doing this on the CLI in "show threads" marks the end of the output, and it may affect some external tools. We need to make sure that LFs are only emitted if there's something on the line and that all lines properly start with the prefix. This may be backported as far as 2.0 since the commit above was backported there. --- src/debug.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/debug.c b/src/debug.c index c75e6086b..6f691d9fe 100644 --- a/src/debug.c +++ b/src/debug.c @@ -298,9 +298,10 @@ void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx) if (hlua && hlua->T) { chunk_appendf(buf, "stack traceback:\n "); append_prefixed_str(buf, hlua_traceback(hlua->T, "\n "), pfx, '\n', 0); - b_putchr(buf, '\n'); } - else + + /* we may need to terminate the current line */ + if (*b_peek(buf, b_data(buf)-1) != '\n') b_putchr(buf, '\n'); #endif }