From: Christopher Faulet Date: Fri, 24 Jul 2020 17:08:05 +0000 (+0200) Subject: BUG/MINOR: debug: Don't dump the lua stack if it is not initialized X-Git-Tag: v2.3-dev2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=471425f51;p=thirdparty%2Fhaproxy.git BUG/MINOR: debug: Don't dump the lua stack if it is not initialized When the watchdog is fired because of the lua, the stack of the corresponding lua context is dumped. But we must be sure the lua context is fully initialized to do so. If we are blocked on the global lua lock, during the lua context initialization, the lua stask may be NULL. This patch should fix the issue #776. It must be backported as far as 2.0. --- diff --git a/src/debug.c b/src/debug.c index e173f4277c..b2a4c6bacb 100644 --- a/src/debug.c +++ b/src/debug.c @@ -222,11 +222,13 @@ void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx) chunk_appendf(buf, "%sCurrent executing a Lua HTTP service -- ", pfx); } - if (hlua) { + if (hlua && hlua->T) { luaL_traceback(hlua->T, hlua->T, NULL, 0); if (!append_prefixed_str(buf, lua_tostring(hlua->T, -1), pfx, '\n', 1)) b_putchr(buf, '\n'); } + else + b_putchr(buf, '\n'); #endif }