From f6aaf3fef2dd295a35e0ea82f604670db194047b Mon Sep 17 00:00:00 2001 From: wei liu Date: Thu, 15 Aug 2024 19:15:00 +0800 Subject: [PATCH] fix: force update next target if target can't be loaded (#35365) issue: #35361 Signed-off-by: Wei Liu --- internal/querycoordv2/task/scheduler.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/querycoordv2/task/scheduler.go b/internal/querycoordv2/task/scheduler.go index 641c2c58a4..a2be33ae8e 100644 --- a/internal/querycoordv2/task/scheduler.go +++ b/internal/querycoordv2/task/scheduler.go @@ -821,6 +821,12 @@ func (scheduler *taskScheduler) remove(task Task) { zap.Int64("replicaID", task.ReplicaID()), zap.String("status", task.Status()), ) + + if errors.Is(task.Err(), merr.ErrSegmentNotFound) { + log.Info("segment in target has been cleaned, trigger force update next target", zap.Int64("collectionID", task.CollectionID())) + scheduler.targetMgr.UpdateCollectionNextTarget(task.CollectionID()) + } + task.Cancel(nil) scheduler.tasks.Remove(task.ID()) scheduler.waitQueue.Remove(task)