changeset 21187:8117c1c2d3f6

lib-index: Limit mmap errors in txn log file to 1/s
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 21 Nov 2016 13:57:23 +0200
parents 34074cc72a15
children f9b84d8a718b
files src/lib-index/mail-transaction-log-file.c src/lib-index/mail-transaction-log-private.h
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-file.c	Mon Nov 21 13:53:50 2016 +0200
+++ b/src/lib-index/mail-transaction-log-file.c	Mon Nov 21 13:57:23 2016 +0200
@@ -1623,8 +1623,11 @@
 	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;
 	}
 
--- a/src/lib-index/mail-transaction-log-private.h	Mon Nov 21 13:53:50 2016 +0200
+++ b/src/lib-index/mail-transaction-log-private.h	Mon Nov 21 13:57:23 2016 +0200
@@ -46,6 +46,8 @@
 	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;