]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 9 Sep 2016 11:29:21 +0000 (14:29 +0300)
This is to prevent log flooding.

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

index 6cfd83db752aaefcda765ba667ea392aa760c156..9b6392726946d8d6105b89334816fad124086f90 100644 (file)
@@ -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;
 
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);
+               }
        }
 }