From dffa503fd4ce31334346e539496084c80a2d8d37 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 5 Mar 2009 17:27:25 -0500 Subject: [PATCH] indexes: Make sure we don't shrink log_file_tail_offset. --HG-- branch : HEAD --- src/lib-index/mail-transaction-log-append.c | 1 + src/lib-index/mail-transaction-log-file.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib-index/mail-transaction-log-append.c b/src/lib-index/mail-transaction-log-append.c index 65f44831ba..b63a0b8566 100644 --- a/src/lib-index/mail-transaction-log-append.c +++ b/src/lib-index/mail-transaction-log-append.c @@ -532,6 +532,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; -- 2.47.3