commit 3a761682a65e7e7f7baf172f58b15e567a685387 Author: Willy Tarreau Date: Wed Aug 21 14:12:19 2019 +0200 MINOR: debug: indicate the applet name when the task is task_run_applet() This allows to figure what applet is currently being executed (and likely hung). (cherry picked from commit a512b02f67a30ab5519d04f8c8b1263415321c85) [wt: backported to improve troubleshooting when the watchdog fires] Signed-off-by: Willy Tarreau diff --git a/src/debug.c b/src/debug.c index 3077e97c..36cc9e71 100644 --- a/src/debug.c +++ b/src/debug.c @@ -90,6 +90,7 @@ void ha_thread_dump(struct buffer *buf, int thr, int calling_tid) void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx) { const struct stream *s = NULL; + const struct appctx __maybe_unused *appctx = NULL; if (!task) { chunk_appendf(buf, "0\n"); @@ -110,7 +111,7 @@ void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx) task->call_date ? " ns ago" : ""); chunk_appendf(buf, "%s" - " fct=%p (%s) ctx=%p\n", + " fct=%p (%s) ctx=%p", pfx, task->process, task->process == process_stream ? "process_stream" : @@ -119,6 +120,11 @@ void ha_task_dump(struct buffer *buf, const struct task *task, const char *pfx) "?", task->context); + if (task->process == task_run_applet && (appctx = task->context)) + chunk_appendf(buf, "(%s)\n", appctx->applet->name); + else + chunk_appendf(buf, "\n"); + if (task->process == process_stream && task->context) s = (struct stream *)task->context; else if (task->process == task_run_applet && task->context)