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.
This commit is contained in:
Christopher Faulet 2020-07-24 19:08:05 +02:00
parent 749f74c622
commit 471425f51d

View File

@ -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
}