From c879d59b6cc8e024d0d5c520831828db303b3c65 Mon Sep 17 00:00:00 2001 From: factosea <285808407@qq.com> Date: Thu, 28 Nov 2024 14:17:12 +0800 Subject: [PATCH] fix: change task status from succ to partsucc --- include/util/taoserror.h | 1 + source/libs/qworker/src/qwDbg.c | 4 ++++ source/libs/qworker/src/qworker.c | 4 ++++ source/util/src/terror.c | 1 + 4 files changed, 10 insertions(+) diff --git a/include/util/taoserror.h b/include/util/taoserror.h index 6cedaeeef1..6caac066de 100644 --- a/include/util/taoserror.h +++ b/include/util/taoserror.h @@ -640,6 +640,7 @@ int32_t taosGetErrSize(); #define TSDB_CODE_QRY_FILTER_WRONG_OPTR_TYPE TAOS_DEF_ERROR_CODE(0, 0x0735) #define TSDB_CODE_QRY_FILTER_RANGE_ERROR TAOS_DEF_ERROR_CODE(0, 0x0736) #define TSDB_CODE_QRY_FILTER_INVALID_TYPE TAOS_DEF_ERROR_CODE(0, 0x0737) +#define TSDB_CODE_QRY_TASK_SUCC_TO_PARTSUSS TAOS_DEF_ERROR_CODE(0, 0x0738) // grant #define TSDB_CODE_GRANT_EXPIRED TAOS_DEF_ERROR_CODE(0, 0x0800) diff --git a/source/libs/qworker/src/qwDbg.c b/source/libs/qworker/src/qwDbg.c index 897080df3e..5cef253cae 100644 --- a/source/libs/qworker/src/qwDbg.c +++ b/source/libs/qworker/src/qwDbg.c @@ -61,6 +61,10 @@ int32_t qwDbgValidateStatus(QW_FPARAMS_DEF, int8_t oriStatus, int8_t newStatus, break; case JOB_TASK_STATUS_SUCC: + if (newStatus == JOB_TASK_STATUS_PART_SUCC) { + QW_TASK_DLOG("task status update from %s to %s", jobTaskStatusStr(oriStatus), jobTaskStatusStr(newStatus)); + return TSDB_CODE_QRY_TASK_SUCC_TO_PARTSUSS; + } if (newStatus != JOB_TASK_STATUS_DROP && newStatus != JOB_TASK_STATUS_FAIL) { QW_ERR_JRET(TSDB_CODE_APP_ERROR); } diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index 13e1d0e231..aae31480e2 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -684,6 +684,10 @@ _return: if (TSDB_CODE_SUCCESS == code && QW_PHASE_POST_QUERY == phase) { code = qwUpdateTaskStatus(QW_FPARAMS(), JOB_TASK_STATUS_PART_SUCC, ctx->dynamicTask); + if (code == TSDB_CODE_QRY_TASK_SUCC_TO_PARTSUSS && ctx->queryRsped) { + QW_TASK_DLOG("skip error: %s. ", tstrerror(code)); + code = TSDB_CODE_SUCCESS; + } ctx->queryGotData = true; } diff --git a/source/util/src/terror.c b/source/util/src/terror.c index 9e8a85d301..7e4454edf8 100644 --- a/source/util/src/terror.c +++ b/source/util/src/terror.c @@ -511,6 +511,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_QRY_FILTER_NOT_SUPPORT_TYPE, "Not supported range t TAOS_DEFINE_ERROR(TSDB_CODE_QRY_FILTER_WRONG_OPTR_TYPE, "Wrong operator type") TAOS_DEFINE_ERROR(TSDB_CODE_QRY_FILTER_RANGE_ERROR, "Wrong filter range") TAOS_DEFINE_ERROR(TSDB_CODE_QRY_FILTER_INVALID_TYPE, "Invalid filter type") +TAOS_DEFINE_ERROR(TSDB_CODE_QRY_TASK_SUCC_TO_PARTSUSS, "Change task status from partial success to success") // grant TAOS_DEFINE_ERROR(TSDB_CODE_GRANT_EXPIRED, "License expired")