From 3c014db6f22aa3d18676f69f2881ab4336b6ecff Mon Sep 17 00:00:00 2001 From: =?utf8?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 | 2 ++ src/lib-index/mail-index.c | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib-index/mail-index-private.h b/src/lib-index/mail-index-private.h index b2e219bb55..9e94c9fc13 100644 --- a/src/lib-index/mail-index-private.h +++ b/src/lib-index/mail-index-private.h @@ -215,6 +215,8 @@ struct mail_index { ARRAY(union mail_index_module_context *) module_contexts; char *error; + time_t last_error_time; + bool nodiskspace:1; bool 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); + } } } -- 2.47.3