From b212aef5dbd2beadfa68ac1f6f08a3d519533747 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Thu, 4 May 2023 09:56:48 +0200 Subject: [PATCH] add one nanosecond to generated filter so as to generate a filter that would have matched the last task to delete --- index-scheduler/src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/index-scheduler/src/lib.rs b/index-scheduler/src/lib.rs index 02e45d0b9..abd161d10 100644 --- a/index-scheduler/src/lib.rs +++ b/index-scheduler/src/lib.rs @@ -1137,13 +1137,17 @@ impl IndexScheduler { // it's safe to unwrap here because we checked the len above let newest_task_id = to_delete.iter().last().unwrap(); - let task = self.get_task(&rtxn, newest_task_id)?.ok_or(Error::CorruptedTaskQueue)?; + let last_task_to_delete = + self.get_task(&rtxn, newest_task_id)?.ok_or(Error::CorruptedTaskQueue)?; drop(rtxn); + // increase time by one nanosecond so that the enqueuedAt of the last task to delete is also lower than that date. + let delete_before = last_task_to_delete.enqueued_at + Duration::from_nanos(1); + self.register(KindWithContent::TaskDeletion { query: format!( "?beforeEnqueuedAt={},status=succeeded,failed,canceled", - task.enqueued_at.format(&Rfc3339).map_err(|_| Error::CorruptedTaskQueue)?, + delete_before.format(&Rfc3339).map_err(|_| Error::CorruptedTaskQueue)?, ), tasks: to_delete, })?;