From 5535fad2b06709f36e0f362c842d3add2d843a86 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 16 Apr 2020 14:46:28 +0300 Subject: [PATCH] lib-storage: index_index_rebuild_init() - Assert-crash if index isn't locked --- src/lib-storage/index/index-rebuild.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib-storage/index/index-rebuild.c b/src/lib-storage/index/index-rebuild.c index b6cac3d226..b1db6b251c 100644 --- a/src/lib-storage/index/index-rebuild.c +++ b/src/lib-storage/index/index-rebuild.c @@ -200,6 +200,11 @@ index_index_rebuild_init(struct mailbox *box, struct mail_index_view *view, const char *index_dir, *backup_path; enum mail_index_open_flags open_flags = MAIL_INDEX_OPEN_FLAG_READONLY; + /* Rebuilding really should be done locked so multiple processes won't + try to rebuild concurrently. Also at the end of rebiuld cache + purging requires this lock. */ + i_assert(mail_index_is_locked(view->index)); + ctx = i_new(struct index_rebuild_context, 1); ctx->box = box; ctx->view = view; -- 2.47.3