BUG/MEDIUM: debug/lua: Don't dump the lua stack if not dumpable

When we try to dump the stack of a lua context, if it is not dumpable,
nothing is performed and a message is emitted instead. This happens when a
lua execution was interrupted inside a non-reentrant part.

This patch depends on following commit :

 * MEDIUM: lua: Use a per-thread counter to track some non-reentrant parts of lua

Thanks to this patch, we avoid a possible deadllock if the lua is
interrupted by the watchdog in the lua memory allocator, because realloc()
is not async-signal-safe.

Both patches must be backported as far as 2.0.
diff --git a/src/debug.c b/src/debug.c
index f86d054..9346828 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -264,9 +264,13 @@
 	}
 
 	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');
+		if (hlua_not_dumpable == 0) {
+			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
+			chunk_appendf(buf, "Inside non-rentrant part, Stack traceback not available\n");
 	}
 	else
 		b_putchr(buf, '\n');