# HG changeset patch # User Timo Sirainen # Date 1194386182 -7200 # Node ID 700555e06849dd1985ed98cea362638d96cd18b7 # Parent cfdf3b2e3dd38f72f5575a5a64d730cd55cb2aea If messages are unexpectedly lost from index file, log an error instead of assert-crashing. diff -r cfdf3b2e3dd3 -r 700555e06849 src/lib-index/mail-index-view-sync.c --- a/src/lib-index/mail-index-view-sync.c Tue Nov 06 23:50:57 2007 +0200 +++ b/src/lib-index/mail-index-view-sync.c Tue Nov 06 23:56:22 2007 +0200 @@ -321,10 +321,19 @@ } if (sync_expunges || !view_sync_have_expunges(view)) { + if (view->index->map->hdr.messages_count < + ctx->finish_min_msg_count) { + mail_index_set_error(view->index, + "Index %s lost messages without expunging " + "(%u -> %u)", view->index->filepath, + view->map->hdr.messages_count, + view->index->map->hdr.messages_count); + ctx->finish_min_msg_count = 0; + view->inconsistent = TRUE; + } + view->sync_new_map = view->index->map; view->sync_new_map->refcount++; - i_assert(view->index->map->hdr.messages_count >= - ctx->finish_min_msg_count); /* keep the old mapping without expunges until we're fully synced */