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)