From c9d847787efc30eaaf158f2c4f75503a3e6ce2c2 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Thu, 20 Jun 2024 14:21:33 +0800 Subject: [PATCH] fix: level task done number issue --- source/libs/scheduler/src/schTask.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/libs/scheduler/src/schTask.c b/source/libs/scheduler/src/schTask.c index 7f60353b1c..c317a63ce1 100644 --- a/source/libs/scheduler/src/schTask.c +++ b/source/libs/scheduler/src/schTask.c @@ -248,7 +248,7 @@ int32_t schProcessOnTaskSuccess(SSchJob *pJob, SSchTask *pTask) { SCH_LOG_TASK_END_TS(pTask); - atomic_add_fetch_32(&pTask->level->taskExecDoneNum, 1); + int32_t taskDone = atomic_add_fetch_32(&pTask->level->taskExecDoneNum, 1); SCH_SET_TASK_STATUS(pTask, JOB_TASK_STATUS_PART_SUCC); @@ -319,8 +319,10 @@ int32_t schProcessOnTaskSuccess(SSchJob *pJob, SSchTask *pTask) { } } - SCH_ERR_RET(schLaunchJobLowerLevel(pJob, pTask)); - + if (taskDone == pTask->level->taskNum) { + SCH_ERR_RET(schLaunchJobLowerLevel(pJob, pTask)); + } + return TSDB_CODE_SUCCESS; }