]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: limit mail_index error prints to one per ioloop_time
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Thu, 8 Sep 2016 16:01:54 +0000 (19:01 +0300)
committerMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Fri, 9 Sep 2016 04:50:33 +0000 (07:50 +0300)
This is to prevent log flooding.

src/lib-index/mail-index-private.h
src/lib-index/mail-index.c

index b2e219bb55db7a7fefd024a1a114ddec4938fd9f..9e94c9fc1379d6ce3cbe4cf36365eaef565887e1 100644 (file)
@@ -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;
 
index 596039d805965c4b6080fd93897e8e97ed006f69..87c58ff8c362d1fef2aa41d14528f6dc92713b6b 100644 (file)
@@ -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);
+               }
        }
 }