From e2b6699c7a1fb94f8f03604d45b11f82c29b50c5 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Mon, 6 May 2024 15:57:57 +0800 Subject: [PATCH] fix: scheduler retry issue --- source/libs/scheduler/src/schJob.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/libs/scheduler/src/schJob.c b/source/libs/scheduler/src/schJob.c index a4a76f01b7..a75e396e7d 100644 --- a/source/libs/scheduler/src/schJob.c +++ b/source/libs/scheduler/src/schJob.c @@ -862,6 +862,7 @@ int32_t schResetJobForRetry(SSchJob *pJob, int32_t rspCode, bool *inRetry) { SCH_ERR_RET(schChkResetJobRetry(pJob, rspCode)); + int32_t code = 0; int32_t numOfLevels = taosArrayGetSize(pJob->levels); for (int32_t i = 0; i < numOfLevels; ++i) { SSchLevel *pLevel = taosArrayGet(pJob->levels, i); @@ -873,7 +874,11 @@ int32_t schResetJobForRetry(SSchJob *pJob, int32_t rspCode, bool *inRetry) { for (int32_t j = 0; j < numOfTasks; ++j) { SSchTask *pTask = taosArrayGet(pLevel->subTasks, j); SCH_LOCK_TASK(pTask); - SCH_ERR_RET(schChkUpdateRedirectCtx(pJob, pTask, NULL, rspCode)); + code = schChkUpdateRedirectCtx(pJob, pTask, NULL, rspCode); + if (TSDB_CODE_SUCCESS != code) { + SCH_UNLOCK_TASK(pTask); + SCH_RET(code); + } qClearSubplanExecutionNode(pTask->plan); schResetTaskForRetry(pJob, pTask); SCH_UNLOCK_TASK(pTask);