From 796336749045577e47132b7b7f49a7bb697c4933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martti=20Rannanj=C3=A4rvi?= Date: Thu, 8 Sep 2016 19:01:54 +0300 Subject: [PATCH] lib-index: limit mail_index error prints to one per ioloop_time This is to prevent log flooding. --- src/lib-index/mail-index-private.h | 1 + src/lib-index/mail-index.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib-index/mail-index-private.h b/src/lib-index/mail-index-private.h index 6cfd83db75..9b63927269 100644 --- a/src/lib-index/mail-index-private.h +++ b/src/lib-index/mail-index-private.h @@ -215,6 +215,7 @@ struct mail_index { ARRAY(union mail_index_module_context *) module_contexts; char *error; + time_t last_error_time; unsigned int nodiskspace:1; unsigned int index_lock_timeout:1; diff --git a/src/lib-index/mail-index.c b/src/lib-index/mail-index.c index 596039d805..87c58ff8c3 100644 --- a/src/lib-index/mail-index.c +++ b/src/lib-index/mail-index.c @@ -753,7 +753,10 @@ void mail_index_set_error(struct mail_index *index, const char *fmt, ...) index->error = i_strdup_vprintf(fmt, va); va_end(va); - i_error("%s", index->error); + if (ioloop_time != index->last_error_time) { + index->last_error_time = ioloop_time; + i_error("%s", index->error); + } } }