diff --git a/crates/index-scheduler/src/dump.rs b/crates/index-scheduler/src/dump.rs index e1bad51d5..2dde6d623 100644 --- a/crates/index-scheduler/src/dump.rs +++ b/crates/index-scheduler/src/dump.rs @@ -4,7 +4,6 @@ use std::io; use dump::{KindDump, TaskDump, UpdateFile}; use meilisearch_types::heed::RwTxn; use meilisearch_types::milli; -use meilisearch_types::milli::documents::DocumentsBatchBuilder; use meilisearch_types::tasks::{Kind, KindWithContent, Status, Task}; use roaring::RoaringBitmap; use uuid::Uuid; @@ -62,7 +61,7 @@ impl<'a> Dump<'a> { // in case we try to open it later. _ if task.status != Status::Enqueued => Some(Uuid::nil()), None if task.status == Status::Enqueued && task_has_no_docs => { - let (uuid, mut file) = self.index_scheduler.queue.create_update_file(false)?; + let (uuid, file) = self.index_scheduler.queue.create_update_file(false)?; file.persist()?; Some(uuid) diff --git a/crates/index-scheduler/src/scheduler/process_dump_creation.rs b/crates/index-scheduler/src/scheduler/process_dump_creation.rs index 3fd5c795b..6b580abeb 100644 --- a/crates/index-scheduler/src/scheduler/process_dump_creation.rs +++ b/crates/index-scheduler/src/scheduler/process_dump_creation.rs @@ -72,6 +72,13 @@ impl IndexScheduler { t.started_at = Some(started_at); t.finished_at = Some(finished_at); } + + // Patch the task to remove the batch uid, because as of v1.12.5 batches are not persisted. + // This prevent from referencing *future* batches not actually associated with the task. + // + // See for details. + t.batch_uid = None; + let mut dump_content_file = dump_tasks.push_task(&t.into())?; // 2.1. Dump the `content_file` associated with the task if there is one and the task is not finished yet. diff --git a/crates/meilitool/src/main.rs b/crates/meilitool/src/main.rs index 743fe552e..599bc3274 100644 --- a/crates/meilitool/src/main.rs +++ b/crates/meilitool/src/main.rs @@ -245,6 +245,7 @@ fn export_a_dump( let (_, t) = ret?; let status = t.status; let content_file = t.content_uuid(); + let mut dump_content_file = dump_tasks.push_task(&t.into())?; // 3.1. Dump the `content_file` associated with the task if there is one and the task is not finished yet.