]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Limit mmap errors in txn log file to 1/s
authorAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 21 Nov 2016 11:57:23 +0000 (13:57 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 21 Nov 2016 20:45:02 +0000 (22:45 +0200)
src/lib-index/mail-transaction-log-file.c
src/lib-index/mail-transaction-log-private.h

index 93bf40f31ebd19dbfa8f287e8241efb728a013f6..4d24e705d1dce7c4f7858ad70d246ec6f2b4caf3 100644 (file)
@@ -1623,8 +1623,11 @@ mail_transaction_log_file_mmap(struct mail_transaction_log_file *file)
        if (file->mmap_base == MAP_FAILED) {
                file->mmap_base = NULL;
                file->mmap_size = 0;
-               log_file_set_syscall_error(file, t_strdup_printf(
-                       "mmap(size=%"PRIuSIZE_T")", file->mmap_size));
+               if (ioloop_time != file->last_mmap_error_time) {
+                       ioloop_time = file->last_mmap_error_time;
+                       log_file_set_syscall_error(file, t_strdup_printf(
+                               "mmap(size=%"PRIuSIZE_T")", file->mmap_size));
+               }
                return -1;
        }
 
index 61ff3542d3adc8d060cebf8b6c8fe41461f74a60..a6ea4175a12e786c87f61196b271303ea49989a5 100644 (file)
@@ -46,6 +46,8 @@ struct mail_transaction_log_file {
        time_t last_mtime;
        uoff_t last_size;
 
+       time_t last_mmap_error_time;
+
        struct mail_transaction_log_header hdr;
        buffer_t mmap_buffer;
        buffer_t *buffer;