From: Timo Sirainen Date: Thu, 5 Mar 2009 22:29:37 +0000 (-0500) Subject: indexes: Make sure we don't shrink log_file_tail_offset. X-Git-Tag: 1.2.beta2~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8562da433e7659ce8ad6044ff5d8f44869c8cb73;p=thirdparty%2Fdovecot%2Fcore.git indexes: Make sure we don't shrink log_file_tail_offset. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-transaction-log-append.c b/src/lib-index/mail-transaction-log-append.c index d4a000727a..d7d39c016c 100644 --- a/src/lib-index/mail-transaction-log-append.c +++ b/src/lib-index/mail-transaction-log-append.c @@ -537,6 +537,7 @@ static void log_append_sync_offset_if_needed(struct log_append_context *ctx) if (ctx->file->saved_tail_offset == offset) return; + i_assert(offset > ctx->file->saved_tail_offset); buf = buffer_create_static_hard(pool_datastack_create(), sizeof(*u) + sizeof(offset)); diff --git a/src/lib-index/mail-transaction-log-file.c b/src/lib-index/mail-transaction-log-file.c index 15e55d0f26..316fae4262 100644 --- a/src/lib-index/mail-transaction-log-file.c +++ b/src/lib-index/mail-transaction-log-file.c @@ -147,6 +147,8 @@ mail_transaction_log_file_skip_to_head(struct mail_transaction_log_file *file) } file->saved_tail_offset = log->index->map->hdr.log_file_tail_offset; file->saved_tail_sync_offset = file->saved_tail_offset; + if (file->saved_tail_offset > file->max_tail_offset) + file->max_tail_offset = file->saved_tail_offset; } static void @@ -775,7 +777,10 @@ log_file_track_mailbox_sync_offset_hdr(struct mail_transaction_log_file *file, return 1; } mail_transaction_log_file_set_corrupted(file, - "log_file_tail_offset shrank"); + "log_file_tail_offset update shrank it " + "(%u vs %"PRIuUOFF_T", file_seq=%u)", + sync_offset, file->saved_tail_offset, + file->hdr.file_seq); return -1; } file->saved_tail_offset = sync_offset;