From 8b5b1372079541128d4bb0b8dc30233f9ef71a92 Mon Sep 17 00:00:00 2001 From: "cai.zhang" Date: Wed, 6 Sep 2023 19:01:14 +0800 Subject: [PATCH] Should set index task retry not failed when task canceled (#26878) Signed-off-by: cai.zhang --- internal/indexnode/task_scheduler.go | 6 +++--- internal/indexnode/task_scheduler_test.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/indexnode/task_scheduler.go b/internal/indexnode/task_scheduler.go index f849f542ab..fe6b4edd4b 100644 --- a/internal/indexnode/task_scheduler.go +++ b/internal/indexnode/task_scheduler.go @@ -220,9 +220,9 @@ func (sched *TaskScheduler) processTask(t task, q TaskQueue) { pipelines := []func(context.Context) error{t.Prepare, t.BuildIndex, t.SaveIndexFiles} for _, fn := range pipelines { if err := wrap(fn); err != nil { - if err == errCancel { - log.Ctx(t.Ctx()).Warn("index build task canceled", zap.String("task", t.Name())) - t.SetState(commonpb.IndexState_Failed, err.Error()) + if errors.Is(err, errCancel) { + log.Ctx(t.Ctx()).Warn("index build task canceled, retry it", zap.String("task", t.Name())) + t.SetState(commonpb.IndexState_Retry, err.Error()) } else if errors.Is(err, ErrNoSuchKey) { t.SetState(commonpb.IndexState_Failed, err.Error()) } else { diff --git a/internal/indexnode/task_scheduler_test.go b/internal/indexnode/task_scheduler_test.go index 46b6b9ac52..c97aab0d28 100644 --- a/internal/indexnode/task_scheduler_test.go +++ b/internal/indexnode/task_scheduler_test.go @@ -164,9 +164,9 @@ func TestIndexTaskScheduler(t *testing.T) { tasks := make([]task, 0) tasks = append(tasks, - newTask(fakeTaskEnqueued, nil, commonpb.IndexState_Failed), - newTask(fakeTaskPrepared, nil, commonpb.IndexState_Failed), - newTask(fakeTaskBuiltIndex, nil, commonpb.IndexState_Failed), + newTask(fakeTaskEnqueued, nil, commonpb.IndexState_Retry), + newTask(fakeTaskPrepared, nil, commonpb.IndexState_Retry), + newTask(fakeTaskBuiltIndex, nil, commonpb.IndexState_Retry), newTask(fakeTaskSavedIndexes, nil, commonpb.IndexState_Finished), newTask(fakeTaskSavedIndexes, map[fakeTaskState]error{fakeTaskSavedIndexes: fmt.Errorf("auth failed")}, commonpb.IndexState_Retry))