]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: debug: do not emit empty lines in thread dumps
authorWilly Tarreau <w@1wt.eu>
Thu, 4 May 2023 14:28:30 +0000 (16:28 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 4 May 2023 14:51:50 +0000 (16:51 +0200)
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

index c75e6086b594975ba5f9ceaa2873a73ab45b90a6..6f691d9fef9bcf3b7d8009838d7a56c2ab24bca1 100644 (file)
@@ -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
 }