From cc1cf679e1d73b73dea15ea98942cb03522e0bcc Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Fri, 27 Sep 2024 16:47:52 +0800 Subject: [PATCH] fix: task redirect issue --- source/libs/scheduler/inc/schInt.h | 1 + source/libs/scheduler/src/schTask.c | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/source/libs/scheduler/inc/schInt.h b/source/libs/scheduler/inc/schInt.h index 0f3d1bfa81..8a156e8a06 100644 --- a/source/libs/scheduler/inc/schInt.h +++ b/source/libs/scheduler/inc/schInt.h @@ -61,6 +61,7 @@ typedef enum { #define SCH_MAX_TASK_TIMEOUT_USEC 300000000 #define SCH_DEFAULT_MAX_RETRY_NUM 6 #define SCH_MIN_AYSNC_EXEC_NUM 3 +#define SCH_DEFAULT_RETRY_TOTAL_ROUND 3 typedef struct SSchDebug { bool lockEnable; diff --git a/source/libs/scheduler/src/schTask.c b/source/libs/scheduler/src/schTask.c index 3a63889271..375ad5fa37 100644 --- a/source/libs/scheduler/src/schTask.c +++ b/source/libs/scheduler/src/schTask.c @@ -358,11 +358,6 @@ int32_t schRescheduleTask(SSchJob *pJob, SSchTask *pTask) { int32_t schChkUpdateRedirectCtx(SSchJob *pJob, SSchTask *pTask, SEpSet *pEpSet, int32_t rspCode) { SSchRedirectCtx *pCtx = &pTask->redirectCtx; - if (JOB_TASK_STATUS_EXEC == pTask->status) { - SCH_TASK_DLOG("task not start yet, rspCode:%d", rspCode); - return TSDB_CODE_SUCCESS; - } - if (!pCtx->inRedirect) { pCtx->inRedirect = true; pCtx->periodMs = tsRedirectPeriod; @@ -371,9 +366,11 @@ int32_t schChkUpdateRedirectCtx(SSchJob *pJob, SSchTask *pTask, SEpSet *pEpSet, if (SCH_IS_DATA_BIND_TASK(pTask)) { if (pEpSet) { pCtx->roundTotal = pEpSet->numOfEps; - } else { + } else if (pTask->candidateAddrs && taosArrayGetSize(pTask->candidateAddrs) > 0) { SQueryNodeAddr *pAddr = taosArrayGet(pTask->candidateAddrs, 0); pCtx->roundTotal = pAddr->epSet.numOfEps; + } else { + pCtx->roundTotal = SCH_DEFAULT_RETRY_TOTAL_ROUND; } } else { pCtx->roundTotal = 1;