From c1a4bc46e0921ec758c9cd5eef0e3ff9539048ad Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 25 Jul 2016 17:08:18 -0400 Subject: [PATCH] dict-client: Improved timeout error message --- src/lib-dict/dict-client.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/lib-dict/dict-client.c b/src/lib-dict/dict-client.c index 27656aec74..855fd17816 100644 --- a/src/lib-dict/dict-client.c +++ b/src/lib-dict/dict-client.c @@ -185,11 +185,19 @@ dict_cmd_callback_error(struct client_dict_cmd *cmd, const char *error, static void client_dict_input_timeout(struct client_dict *dict) { - int diff = timeval_diff_msecs(&ioloop_timeval, &dict->last_input); + struct client_dict_cmd *const *cmds; + unsigned int count; + + cmds = array_get(&dict->cmds, &count); + i_assert(count > 0); + int input_diff = timeval_diff_msecs(&ioloop_timeval, &dict->last_input); + int cmd_diff = timeval_diff_msecs(&ioloop_timeval, &cmds[0]->start_time); client_dict_disconnect(dict, t_strdup_printf( - "Timeout: No input from dict for %u.%03u secs", - diff/1000, diff%1000)); + "Timeout: No input from dict for %u.%03u secs " + "(%u commands pending, oldest sent %u.%03u secs ago: %s)", + input_diff/1000, input_diff%1000, count, + cmd_diff/1000, cmd_diff%1000, cmds[0]->query)); } static int