diff --git a/include/common/tglobal.h b/include/common/tglobal.h index 3fd3cc4ca9..bb5271a45f 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -272,11 +272,11 @@ int32_t taosCfgDynamicOptions(SConfig *pCfg, const char *name, bool forServer); struct SConfig *taosGetCfg(); -void taosSetGlobalDebugFlag(int32_t flag); -void taosSetDebugFlag(int32_t *pFlagPtr, const char *flagName, int32_t flagVal); -void taosLocalCfgForbiddenToChange(char *name, bool *forbidden); -int8_t taosGranted(int8_t type); -int32_t taosSetSlowLogScope(char *pScope); +int32_t taosSetGlobalDebugFlag(int32_t flag); +int32_t taosSetDebugFlag(int32_t *pFlagPtr, const char *flagName, int32_t flagVal); +void taosLocalCfgForbiddenToChange(char *name, bool *forbidden); +int8_t taosGranted(int8_t type); +int32_t taosSetSlowLogScope(char *pScopeStr, int32_t *pScope); #ifdef __cplusplus } diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 069032b295..4830593616 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -683,36 +683,55 @@ typedef struct { } SColCmprWrapper; static FORCE_INLINE SColCmprWrapper* tCloneSColCmprWrapper(const SColCmprWrapper* pSrcWrapper) { - if (pSrcWrapper->pColCmpr == NULL || pSrcWrapper->nCols == 0) return NULL; + if (pSrcWrapper->pColCmpr == NULL || pSrcWrapper->nCols == 0) { + terrno = TSDB_CODE_INVALID_PARA; + return NULL; + } SColCmprWrapper* pDstWrapper = (SColCmprWrapper*)taosMemoryMalloc(sizeof(SColCmprWrapper)); + if (pDstWrapper == NULL) { + return NULL; + } pDstWrapper->nCols = pSrcWrapper->nCols; pDstWrapper->version = pSrcWrapper->version; int32_t size = sizeof(SColCmpr) * pDstWrapper->nCols; pDstWrapper->pColCmpr = (SColCmpr*)taosMemoryCalloc(1, size); + if (pDstWrapper->pColCmpr == NULL) { + taosMemoryFree(pDstWrapper); + return NULL; + } (void)memcpy(pDstWrapper->pColCmpr, pSrcWrapper->pColCmpr, size); return pDstWrapper; } -static FORCE_INLINE void tInitDefaultSColCmprWrapperByCols(SColCmprWrapper* pCmpr, int32_t nCols) { +static FORCE_INLINE int32_t tInitDefaultSColCmprWrapperByCols(SColCmprWrapper* pCmpr, int32_t nCols) { assert(!pCmpr->pColCmpr); pCmpr->pColCmpr = (SColCmpr*)taosMemoryCalloc(nCols, sizeof(SColCmpr)); + if (pCmpr->pColCmpr == NULL) { + return terrno; + } pCmpr->nCols = nCols; + return 0; } -static FORCE_INLINE void tInitDefaultSColCmprWrapper(SColCmprWrapper* pCmpr, SSchemaWrapper* pSchema) { +static FORCE_INLINE int32_t tInitDefaultSColCmprWrapper(SColCmprWrapper* pCmpr, SSchemaWrapper* pSchema) { pCmpr->nCols = pSchema->nCols; assert(!pCmpr->pColCmpr); pCmpr->pColCmpr = (SColCmpr*)taosMemoryCalloc(pCmpr->nCols, sizeof(SColCmpr)); + if (pCmpr->pColCmpr == NULL) { + return terrno; + } for (int32_t i = 0; i < pCmpr->nCols; i++) { SColCmpr* pColCmpr = &pCmpr->pColCmpr[i]; SSchema* pColSchema = &pSchema->pSchema[i]; pColCmpr->id = pColSchema->colId; pColCmpr->alg = 0; } + return 0; } + static FORCE_INLINE void tDeleteSColCmprWrapper(SColCmprWrapper* pWrapper) { if (pWrapper == NULL) return; @@ -723,7 +742,9 @@ static FORCE_INLINE SSchemaWrapper* tCloneSSchemaWrapper(const SSchemaWrapper* p if (pSchemaWrapper->pSchema == NULL) return NULL; SSchemaWrapper* pSW = (SSchemaWrapper*)taosMemoryMalloc(sizeof(SSchemaWrapper)); - if (pSW == NULL) return pSW; + if (pSW == NULL) { + return NULL; + } pSW->nCols = pSchemaWrapper->nCols; pSW->version = pSchemaWrapper->version; pSW->pSchema = (SSchema*)taosMemoryCalloc(pSW->nCols, sizeof(SSchema)); @@ -770,32 +791,32 @@ static FORCE_INLINE void* taosDecodeSSchema(const void* buf, SSchema* pSchema) { } static FORCE_INLINE int32_t tEncodeSSchema(SEncoder* pEncoder, const SSchema* pSchema) { - if (tEncodeI8(pEncoder, pSchema->type) < 0) return -1; - if (tEncodeI8(pEncoder, pSchema->flags) < 0) return -1; - if (tEncodeI32v(pEncoder, pSchema->bytes) < 0) return -1; - if (tEncodeI16v(pEncoder, pSchema->colId) < 0) return -1; - if (tEncodeCStr(pEncoder, pSchema->name) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pSchema->type)); + TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pSchema->flags)); + TAOS_CHECK_RETURN(tEncodeI32v(pEncoder, pSchema->bytes)); + TAOS_CHECK_RETURN(tEncodeI16v(pEncoder, pSchema->colId)); + TAOS_CHECK_RETURN(tEncodeCStr(pEncoder, pSchema->name)); return 0; } static FORCE_INLINE int32_t tDecodeSSchema(SDecoder* pDecoder, SSchema* pSchema) { - if (tDecodeI8(pDecoder, &pSchema->type) < 0) return -1; - if (tDecodeI8(pDecoder, &pSchema->flags) < 0) return -1; - if (tDecodeI32v(pDecoder, &pSchema->bytes) < 0) return -1; - if (tDecodeI16v(pDecoder, &pSchema->colId) < 0) return -1; - if (tDecodeCStrTo(pDecoder, pSchema->name) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pSchema->type)); + TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pSchema->flags)); + TAOS_CHECK_RETURN(tDecodeI32v(pDecoder, &pSchema->bytes)); + TAOS_CHECK_RETURN(tDecodeI16v(pDecoder, &pSchema->colId)); + TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, pSchema->name)); return 0; } static FORCE_INLINE int32_t tEncodeSSchemaExt(SEncoder* pEncoder, const SSchemaExt* pSchemaExt) { - if (tEncodeI16v(pEncoder, pSchemaExt->colId) < 0) return -1; - if (tEncodeU32(pEncoder, pSchemaExt->compress) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI16v(pEncoder, pSchemaExt->colId)); + TAOS_CHECK_RETURN(tEncodeU32(pEncoder, pSchemaExt->compress)); return 0; } static FORCE_INLINE int32_t tDecodeSSchemaExt(SDecoder* pDecoder, SSchemaExt* pSchemaExt) { - if (tDecodeI16v(pDecoder, &pSchemaExt->colId) < 0) return -1; - if (tDecodeU32(pDecoder, &pSchemaExt->compress) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI16v(pDecoder, &pSchemaExt->colId)); + TAOS_CHECK_RETURN(tDecodeU32(pDecoder, &pSchemaExt->compress)); return 0; } @@ -828,36 +849,39 @@ static FORCE_INLINE void* taosDecodeSSchemaWrapper(const void* buf, SSchemaWrapp } static FORCE_INLINE int32_t tEncodeSSchemaWrapper(SEncoder* pEncoder, const SSchemaWrapper* pSW) { - if (tEncodeI32v(pEncoder, pSW->nCols) < 0) return -1; - if (tEncodeI32v(pEncoder, pSW->version) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI32v(pEncoder, pSW->nCols)); + TAOS_CHECK_RETURN(tEncodeI32v(pEncoder, pSW->version)); for (int32_t i = 0; i < pSW->nCols; i++) { - if (tEncodeSSchema(pEncoder, &pSW->pSchema[i]) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeSSchema(pEncoder, &pSW->pSchema[i])); } - return 0; } static FORCE_INLINE int32_t tDecodeSSchemaWrapper(SDecoder* pDecoder, SSchemaWrapper* pSW) { - if (tDecodeI32v(pDecoder, &pSW->nCols) < 0) return -1; - if (tDecodeI32v(pDecoder, &pSW->version) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI32v(pDecoder, &pSW->nCols)); + TAOS_CHECK_RETURN(tDecodeI32v(pDecoder, &pSW->version)); pSW->pSchema = (SSchema*)taosMemoryCalloc(pSW->nCols, sizeof(SSchema)); - if (pSW->pSchema == NULL) return -1; + if (pSW->pSchema == NULL) { + TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + } for (int32_t i = 0; i < pSW->nCols; i++) { - if (tDecodeSSchema(pDecoder, &pSW->pSchema[i]) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, &pSW->pSchema[i])); } return 0; } static FORCE_INLINE int32_t tDecodeSSchemaWrapperEx(SDecoder* pDecoder, SSchemaWrapper* pSW) { - if (tDecodeI32v(pDecoder, &pSW->nCols) < 0) return -1; - if (tDecodeI32v(pDecoder, &pSW->version) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI32v(pDecoder, &pSW->nCols)); + TAOS_CHECK_RETURN(tDecodeI32v(pDecoder, &pSW->version)); pSW->pSchema = (SSchema*)tDecoderMalloc(pDecoder, pSW->nCols * sizeof(SSchema)); - if (pSW->pSchema == NULL) return -1; + if (pSW->pSchema == NULL) { + TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + } for (int32_t i = 0; i < pSW->nCols; i++) { - if (tDecodeSSchema(pDecoder, &pSW->pSchema[i]) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeSSchema(pDecoder, &pSW->pSchema[i])); } return 0; @@ -2838,13 +2862,13 @@ static FORCE_INLINE int32_t tDeserializeSCMSubscribeReq(void* buf, SCMSubscribeR pReq->topicNames = taosArrayInit(topicNum, sizeof(void*)); if (pReq->topicNames == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } for (int32_t i = 0; i < topicNum; i++) { char* name = NULL; buf = taosDecodeString(buf, &name); if (taosArrayPush(pReq->topicNames, &name) == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -2875,6 +2899,7 @@ static FORCE_INLINE SMqRebInfo* tNewSMqRebSubscribe(const char* key) { } pRebInfo->newConsumers = taosArrayInit(0, sizeof(int64_t)); if (pRebInfo->newConsumers == NULL) { + terrno = TSDB_CODE_OUT_OF_MEMORY; goto _err; } return pRebInfo; @@ -3358,30 +3383,32 @@ int32_t tDeserializeSClientHbBatchRsp(void* buf, int32_t bufLen, SClientHbBatchR void tFreeSClientHbBatchRsp(SClientHbBatchRsp* pBatchRsp); static FORCE_INLINE int32_t tEncodeSKv(SEncoder* pEncoder, const SKv* pKv) { - if (tEncodeI32(pEncoder, pKv->key) < 0) return -1; - if (tEncodeI32(pEncoder, pKv->valueLen) < 0) return -1; - if (tEncodeBinary(pEncoder, (uint8_t*)pKv->value, pKv->valueLen) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pKv->key)); + TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pKv->valueLen)); + TAOS_CHECK_RETURN(tEncodeBinary(pEncoder, (uint8_t*)pKv->value, pKv->valueLen)); return 0; } static FORCE_INLINE int32_t tDecodeSKv(SDecoder* pDecoder, SKv* pKv) { - if (tDecodeI32(pDecoder, &pKv->key) < 0) return -1; - if (tDecodeI32(pDecoder, &pKv->valueLen) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pKv->key)); + TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pKv->valueLen)); pKv->value = taosMemoryMalloc(pKv->valueLen + 1); - if (pKv->value == NULL) return -1; - if (tDecodeCStrTo(pDecoder, (char*)pKv->value) < 0) return -1; + if (pKv->value == NULL) { + TAOS_CHECK_RETURN(TSDB_CODE_OUT_OF_MEMORY); + } + TAOS_CHECK_RETURN(tDecodeCStrTo(pDecoder, (char*)pKv->value)); return 0; } static FORCE_INLINE int32_t tEncodeSClientHbKey(SEncoder* pEncoder, const SClientHbKey* pKey) { - if (tEncodeI64(pEncoder, pKey->tscRid) < 0) return -1; - if (tEncodeI8(pEncoder, pKey->connType) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI64(pEncoder, pKey->tscRid)); + TAOS_CHECK_RETURN(tEncodeI8(pEncoder, pKey->connType)); return 0; } static FORCE_INLINE int32_t tDecodeSClientHbKey(SDecoder* pDecoder, SClientHbKey* pKey) { - if (tDecodeI64(pDecoder, &pKey->tscRid) < 0) return -1; - if (tDecodeI8(pDecoder, &pKey->connType) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI64(pDecoder, &pKey->tscRid)); + TAOS_CHECK_RETURN(tDecodeI8(pDecoder, &pKey->connType)); return 0; } @@ -3432,7 +3459,9 @@ static FORCE_INLINE void* taosDecodeSMqTopicInfoMsg(void* buf, SMqTopicInfo* pTo for (int32_t i = 0; i < sz; i++) { SMqReportVgInfo vgInfo; buf = taosDecodeSMqVgInfo(buf, &vgInfo); - taosArrayPush(pTopicInfo->pVgInfo, &vgInfo); + if (taosArrayPush(pTopicInfo->pVgInfo, &vgInfo) == NULL) { + return NULL; + } } return buf; } @@ -3468,7 +3497,9 @@ static FORCE_INLINE void* taosDecodeSMqReportMsg(void* buf, SMqReportReq* pMsg) for (int32_t i = 0; i < sz; i++) { SMqTopicInfo topicInfo; buf = taosDecodeSMqTopicInfoMsg(buf, &topicInfo); - taosArrayPush(pMsg->pTopics, &topicInfo); + if (taosArrayPush(pMsg->pTopics, &topicInfo) == NULL) { + return NULL; + } } return buf; } @@ -3605,9 +3636,9 @@ static FORCE_INLINE void tqOffsetResetToLog(STqOffsetVal* pOffsetVal, int64_t ve int32_t tEncodeSTqOffsetVal(SEncoder* pEncoder, const STqOffsetVal* pOffsetVal); int32_t tDecodeSTqOffsetVal(SDecoder* pDecoder, STqOffsetVal* pOffsetVal); -void tFormatOffset(char* buf, int32_t maxLen, const STqOffsetVal* pVal); +int32_t tFormatOffset(char* buf, int32_t maxLen, const STqOffsetVal* pVal); bool tOffsetEqual(const STqOffsetVal* pLeft, const STqOffsetVal* pRight); -void tOffsetCopy(STqOffsetVal* pLeft, const STqOffsetVal* pOffsetVal); +int32_t tOffsetCopy(STqOffsetVal* pLeft, const STqOffsetVal* pRight); void tOffsetDestroy(void* pVal); typedef struct { @@ -3808,17 +3839,17 @@ int32_t tEncodeTSma(SEncoder* pCoder, const STSma* pSma); int32_t tDecodeTSma(SDecoder* pCoder, STSma* pSma, bool deepCopy); static int32_t tEncodeTSmaWrapper(SEncoder* pEncoder, const STSmaWrapper* pReq) { - if (tEncodeI32(pEncoder, pReq->number) < 0) return -1; + TAOS_CHECK_RETURN(tEncodeI32(pEncoder, pReq->number)); for (int32_t i = 0; i < pReq->number; ++i) { - tEncodeTSma(pEncoder, pReq->tSma + i); + TAOS_CHECK_RETURN(tEncodeTSma(pEncoder, pReq->tSma + i)); } return 0; } static int32_t tDecodeTSmaWrapper(SDecoder* pDecoder, STSmaWrapper* pReq, bool deepCopy) { - if (tDecodeI32(pDecoder, &pReq->number) < 0) return -1; + TAOS_CHECK_RETURN(tDecodeI32(pDecoder, &pReq->number)); for (int32_t i = 0; i < pReq->number; ++i) { - tDecodeTSma(pDecoder, pReq->tSma + i, deepCopy); + TAOS_CHECK_RETURN(tDecodeTSma(pDecoder, pReq->tSma + i, deepCopy)); } return 0; } @@ -4041,7 +4072,10 @@ static FORCE_INLINE void* tDecodeSMqAskEpRsp(void* buf, SMqAskEpRsp* pRsp) { for (int32_t i = 0; i < sz; i++) { SMqSubTopicEp topicEp; buf = tDecodeMqSubTopicEp(buf, &topicEp); - if (taosArrayPush(pRsp->topics, &topicEp) == NULL) { + if (buf == NULL) { + return NULL; + } + if ((taosArrayPush(pRsp->topics, &topicEp) == NULL)) { return NULL; } } diff --git a/include/libs/index/index.h b/include/libs/index/index.h index cfcc9993cf..0ef21794ee 100644 --- a/include/libs/index/index.h +++ b/include/libs/index/index.h @@ -83,7 +83,7 @@ void indexMultiTermQueryDestroy(SIndexMultiTermQuery* pQuery); * @param type (input, single query type) * @return error code */ -int indexMultiTermQueryAdd(SIndexMultiTermQuery* pQuery, SIndexTerm* term, EIndexQueryType type); +int32_t indexMultiTermQueryAdd(SIndexMultiTermQuery* pQuery, SIndexTerm* term, EIndexQueryType type); /* * open index * @param opt (input, index opt) @@ -91,7 +91,7 @@ int indexMultiTermQueryAdd(SIndexMultiTermQuery* pQuery, SIndexTerm* term, EInde * @param index (output, index object) * @return error code */ -int indexOpen(SIndexOpts* opt, const char* path, SIndex** index); +int32_t indexOpen(SIndexOpts* opt, const char* path, SIndex** index); /* * close index * @param index (input, index to be closed) @@ -106,7 +106,7 @@ void indexClose(SIndex* index); * @param uid (input, uid of terms) * @return error code */ -int indexPut(SIndex* index, SIndexMultiTerm* terms, uint64_t uid); +int32_t indexPut(SIndex* index, SIndexMultiTerm* terms, uint64_t uid); /* * delete terms that meet query condition * @param index (input, index object) @@ -114,7 +114,7 @@ int indexPut(SIndex* index, SIndexMultiTerm* terms, uint64_t uid); * @return error code */ -int indexDelete(SIndex* index, SIndexMultiTermQuery* query); +int32_t indexDelete(SIndex* index, SIndexMultiTermQuery* query); /* * search index * @param index (input, index object) @@ -122,7 +122,7 @@ int indexDelete(SIndex* index, SIndexMultiTermQuery* query); * @param result(output, query result) * @return error code */ -int indexSearch(SIndex* index, SIndexMultiTermQuery* query, SArray* result); +int32_t indexSearch(SIndex* index, SIndexMultiTermQuery* query, SArray* result); /* * rebuild index * @param index (input, index object) @@ -138,7 +138,7 @@ int indexSearch(SIndex* index, SIndexMultiTermQuery* query, SArray* result); * @param index (output, index json object) * @return error code */ -int indexJsonOpen(SIndexJsonOpts* opts, const char* path, SIndexJson** index); +int32_t indexJsonOpen(SIndexJsonOpts* opts, const char* path, SIndexJson** index); /* * close index * @param index (input, index to be closed) @@ -154,7 +154,7 @@ void indexJsonClose(SIndexJson* index); * @param uid (input, uid of terms) * @return error code */ -int indexJsonPut(SIndexJson* index, SIndexJsonMultiTerm* terms, uint64_t uid); +int32_t indexJsonPut(SIndexJson* index, SIndexJsonMultiTerm* terms, uint64_t uid); /* * search index * @param index (input, index object) @@ -163,7 +163,7 @@ int indexJsonPut(SIndexJson* index, SIndexJsonMultiTerm* terms, uint64_t uid); * @return error code */ -int indexJsonSearch(SIndexJson* index, SIndexJsonMultiTermQuery* query, SArray* result); +int32_t indexJsonSearch(SIndexJson* index, SIndexJsonMultiTermQuery* query, SArray* result); /* * @param * @param diff --git a/include/util/taoserror.h b/include/util/taoserror.h index 9ea37e937f..1ff9cdd5af 100644 --- a/include/util/taoserror.h +++ b/include/util/taoserror.h @@ -674,6 +674,8 @@ int32_t taosGetErrSize(); #define TSDB_CODE_SYN_WRONG_SYNC_STATE TAOS_DEF_ERROR_CODE(0, 0x091B) #define TSDB_CODE_SYN_WRONG_REF TAOS_DEF_ERROR_CODE(0, 0x091C) #define TSDB_CODE_SYN_INVALID_ID TAOS_DEF_ERROR_CODE(0, 0x091D) +#define TSDB_CODE_SYN_RETURN_VALUE_NULL TAOS_DEF_ERROR_CODE(0, 0x091E) +#define TSDB_CODE_SYN_WRONG_ROLE TAOS_DEF_ERROR_CODE(0, 0x091F) #define TSDB_CODE_SYN_INTERNAL_ERROR TAOS_DEF_ERROR_CODE(0, 0x09FF) diff --git a/source/common/src/cos.c b/source/common/src/cos.c index 2d3eb3f92b..96309ece86 100644 --- a/source/common/src/cos.c +++ b/source/common/src/cos.c @@ -65,13 +65,13 @@ int32_t s3CheckCfg() { int32_t code = 0, lino = 0; if (!tsS3Enabled) { - fprintf(stderr, "s3 not configured.\n"); + (void)fprintf(stderr, "s3 not configured.\n"); goto _exit; } code = s3Begin(); if (code != 0) { - fprintf(stderr, "failed to initialize s3.\n"); + (void)fprintf(stderr, "failed to initialize s3.\n"); TAOS_CHECK_GOTO(code, &lino, _exit); } @@ -82,72 +82,72 @@ int32_t s3CheckCfg() { int ds_len = strlen(TD_DIRSEP); int tmp_len = strlen(tsTempDir); - snprintf(path, PATH_MAX, "%s", tsTempDir); + (void)snprintf(path, PATH_MAX, "%s", tsTempDir); if (strncmp(tsTempDir + tmp_len - ds_len, TD_DIRSEP, ds_len) != 0) { - snprintf(path + tmp_len, PATH_MAX - tmp_len, "%s", TD_DIRSEP); - snprintf(path + tmp_len + ds_len, PATH_MAX - tmp_len - ds_len, "%s", objectname[0]); + (void)snprintf(path + tmp_len, PATH_MAX - tmp_len, "%s", TD_DIRSEP); + (void)snprintf(path + tmp_len + ds_len, PATH_MAX - tmp_len - ds_len, "%s", objectname[0]); } else { - snprintf(path + tmp_len, PATH_MAX - tmp_len, "%s", objectname[0]); + (void)snprintf(path + tmp_len, PATH_MAX - tmp_len, "%s", objectname[0]); } TdFilePtr fp = taosOpenFile(path, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_READ | TD_FILE_TRUNC); if (!fp) { - fprintf(stderr, "failed to open test file: %s.\n", path); + (void)fprintf(stderr, "failed to open test file: %s.\n", path); // uError("ERROR: %s Failed to open %s", __func__, path); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(errno), &lino, _exit); } if (taosWriteFile(fp, testdata, strlen(testdata)) < 0) { - fprintf(stderr, "failed to write test file: %s.\n", path); + (void)fprintf(stderr, "failed to write test file: %s.\n", path); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(errno), &lino, _exit); } if (taosFsyncFile(fp) < 0) { - fprintf(stderr, "failed to fsync test file: %s.\n", path); + (void)fprintf(stderr, "failed to fsync test file: %s.\n", path); TAOS_CHECK_GOTO(TAOS_SYSTEM_ERROR(errno), &lino, _exit); } - taosCloseFile(&fp); + (void)taosCloseFile(&fp); - fprintf(stderr, "\nstart to put object: %s, file: %s content: %s\n", objectname[0], path, testdata); + (void)fprintf(stderr, "\nstart to put object: %s, file: %s content: %s\n", objectname[0], path, testdata); code = s3PutObjectFromFileOffset(path, objectname[0], 0, 16); if (code != 0) { - fprintf(stderr, "put object %s : failed.\n", objectname[0]); + (void)fprintf(stderr, "put object %s : failed.\n", objectname[0]); TAOS_CHECK_GOTO(code, &lino, _exit); } - fprintf(stderr, "put object %s: success.\n\n", objectname[0]); + (void)fprintf(stderr, "put object %s: success.\n\n", objectname[0]); // list buckets - fprintf(stderr, "start to list bucket %s by prefix s3.\n", tsS3BucketName); + (void)fprintf(stderr, "start to list bucket %s by prefix s3.\n", tsS3BucketName); code = s3ListBucket(tsS3BucketName); if (code != 0) { - fprintf(stderr, "listing bucket %s : failed.\n", tsS3BucketName); + (void)fprintf(stderr, "listing bucket %s : failed.\n", tsS3BucketName); TAOS_CHECK_GOTO(code, &lino, _exit); } - fprintf(stderr, "listing bucket %s: success.\n\n", tsS3BucketName); + (void)fprintf(stderr, "listing bucket %s: success.\n\n", tsS3BucketName); // test range get uint8_t *pBlock = NULL; int c_offset = 10; int c_len = 6; - fprintf(stderr, "start to range get object %s offset: %d len: %d.\n", objectname[0], c_offset, c_len); + (void)fprintf(stderr, "start to range get object %s offset: %d len: %d.\n", objectname[0], c_offset, c_len); code = s3GetObjectBlock(objectname[0], c_offset, c_len, true, &pBlock); if (code != 0) { - fprintf(stderr, "get object %s : failed.\n", objectname[0]); + (void)fprintf(stderr, "get object %s : failed.\n", objectname[0]); TAOS_CHECK_GOTO(code, &lino, _exit); } char buf[7] = {0}; - memcpy(buf, pBlock, c_len); + (void)memcpy(buf, pBlock, c_len); taosMemoryFree(pBlock); - fprintf(stderr, "object content: %s\n", buf); - fprintf(stderr, "get object %s: success.\n\n", objectname[0]); + (void)fprintf(stderr, "object content: %s\n", buf); + (void)fprintf(stderr, "get object %s: success.\n\n", objectname[0]); // delete test object - fprintf(stderr, "start to delete object: %s.\n", objectname[0]); + (void)fprintf(stderr, "start to delete object: %s.\n", objectname[0]); code = s3DeleteObjects(objectname, 1); if (code != 0) { - fprintf(stderr, "delete object %s : failed.\n", objectname[0]); + (void)fprintf(stderr, "delete object %s : failed.\n", objectname[0]); TAOS_CHECK_GOTO(code, &lino, _exit); } - fprintf(stderr, "delete object %s: success.\n\n", objectname[0]); + (void)fprintf(stderr, "delete object %s: success.\n\n", objectname[0]); s3End(); @@ -252,9 +252,9 @@ static int32_t s3ListBucket(char const *bucketname) { const char **object_name = TARRAY_DATA(objectArray); int size = TARRAY_SIZE(objectArray); - fprintf(stderr, "objects:\n"); + (void)fprintf(stderr, "objects:\n"); for (int i = 0; i < size; ++i) { - fprintf(stderr, "%s\n", object_name[i]); + (void)fprintf(stderr, "%s\n", object_name[i]); } taosArrayDestroyEx(objectArray, s3FreeObjectKey); @@ -300,7 +300,7 @@ static int growbuffer_append(growbuffer **gb, const char *data, int dataLen) { toCopy = dataLen; } - memcpy(&(buf->data[buf->size]), data, toCopy); + (void)memcpy(&(buf->data[buf->size]), data, toCopy); buf->size += toCopy, data += toCopy, dataLen -= toCopy; } @@ -319,7 +319,7 @@ static void growbuffer_read(growbuffer **gb, int amt, int *amtReturn, char *buff *amtReturn = (buf->size > amt) ? amt : buf->size; - memcpy(buffer, &(buf->data[buf->start]), *amtReturn); + (void)memcpy(buffer, &(buf->data[buf->start]), *amtReturn); buf->start += *amtReturn, buf->size -= *amtReturn; @@ -440,7 +440,7 @@ S3Status initial_multipart_callback(const char *upload_id, void *callbackData) { } S3Status MultipartResponseProperiesCallback(const S3ResponseProperties *properties, void *callbackData) { - responsePropertiesCallbackNull(properties, callbackData); + (void)responsePropertiesCallbackNull(properties, callbackData); MultipartPartData *data = (MultipartPartData *)callbackData; int seq = data->seq; @@ -451,7 +451,7 @@ S3Status MultipartResponseProperiesCallback(const S3ResponseProperties *properti } S3Status MultipartResponseProperiesCallbackWithCp(const S3ResponseProperties *properties, void *callbackData) { - responsePropertiesCallbackNull(properties, callbackData); + (void)responsePropertiesCallbackNull(properties, callbackData); MultipartPartData *data = (MultipartPartData *)callbackData; int seq = data->seq; @@ -624,7 +624,7 @@ static int32_t s3PutObjectFromFileWithoutCp(S3BucketContext *bucket_context, cha } MultipartPartData partData; - memset(&partData, 0, sizeof(MultipartPartData)); + (void)memset(&partData, 0, sizeof(MultipartPartData)); int partContentLength = 0; S3MultipartInitialHandler handler = {{&responsePropertiesCallbackNull, &responseCompleteCallback}, @@ -739,7 +739,7 @@ static int32_t s3PutObjectFromFileWithCp(S3BucketContext *bucket_context, const bool need_init_upload = true; char file_cp_path[TSDB_FILENAME_LEN]; - snprintf(file_cp_path, TSDB_FILENAME_LEN, "%s.cp", file); + (void)snprintf(file_cp_path, TSDB_FILENAME_LEN, "%s.cp", file); SCheckpoint cp = {0}; cp.parts = taosMemoryCalloc(max_part_num, sizeof(SCheckpointPart)); @@ -781,7 +781,7 @@ static int32_t s3PutObjectFromFileWithCp(S3BucketContext *bucket_context, const // cos_cp_get_undo_parts(&cp, &part_num, parts, &consume_bytes); MultipartPartData partData; - memset(&partData, 0, sizeof(MultipartPartData)); + (void)memset(&partData, 0, sizeof(MultipartPartData)); int partContentLength = 0; S3PutObjectHandler putObjectHandler = {{&MultipartResponseProperiesCallbackWithCp, &responseCompleteCallback}, @@ -920,7 +920,7 @@ int32_t s3PutObjectFromFile2(const char *file, const char *object_name, int8_t w char useServerSideEncryption = 0; put_object_callback_data data = {0}; - if (taosStatFile(file, &contentLength, &lmtime, NULL) < 0) { + if (taosStatFile(file, (int64_t *)&contentLength, &lmtime, NULL) < 0) { uError("ERROR: %s Failed to stat file %s: ", __func__, file); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -953,7 +953,7 @@ int32_t s3PutObjectFromFile2(const char *file, const char *object_name, int8_t w } if (data.infileFD) { - taosCloseFile(&data.infileFD); + (void)taosCloseFile(&data.infileFD); } else if (data.gb) { growbuffer_destroy(data.gb); } @@ -975,7 +975,7 @@ int32_t s3PutObjectFromFileOffset(const char *file, const char *object_name, int char useServerSideEncryption = 0; put_object_callback_data data = {0}; - if (taosStatFile(file, &contentLength, &lmtime, NULL) < 0) { + if (taosStatFile(file, (int64_t *)&contentLength, &lmtime, NULL) < 0) { uError("ERROR: %s Failed to stat file %s: ", __func__, file); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -987,7 +987,7 @@ int32_t s3PutObjectFromFileOffset(const char *file, const char *object_name, int TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } if (taosLSeekFile(data.infileFD, offset, SEEK_SET) < 0) { - taosCloseFile(&data.infileFD); + (void)taosCloseFile(&data.infileFD); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -1010,7 +1010,7 @@ int32_t s3PutObjectFromFileOffset(const char *file, const char *object_name, int } if (data.infileFD) { - taosCloseFile(&data.infileFD); + (void)taosCloseFile(&data.infileFD); } else if (data.gb) { growbuffer_destroy(data.gb); } @@ -1038,7 +1038,7 @@ static S3Status listBucketCallback(int isTruncated, const char *nextMarker, int nextMarker = contents[contentsCount - 1].key; } if (nextMarker) { - snprintf(data->nextMarker, sizeof(data->nextMarker), "%s", nextMarker); + (void)snprintf(data->nextMarker, sizeof(data->nextMarker), "%s", nextMarker); } else { data->nextMarker[0] = 0; } @@ -1052,7 +1052,7 @@ static S3Status listBucketCallback(int isTruncated, const char *nextMarker, int const S3ListBucketContent *content = &(contents[i]); // printf("%-50s", content->key); char *object_key = strdup(content->key); - taosArrayPush(data->objectArray, &object_key); + (void)taosArrayPush(data->objectArray, &object_key); } data->keyCount += contentsCount; @@ -1139,7 +1139,7 @@ int32_t s3DeleteObjects(const char *object_name[], int nobject) { void s3DeleteObjectsByPrefix(const char *prefix) { SArray *objectArray = getListByPrefix(prefix); if (objectArray == NULL) return; - s3DeleteObjects(TARRAY_DATA(objectArray), TARRAY_SIZE(objectArray)); + (void)s3DeleteObjects(TARRAY_DATA(objectArray), TARRAY_SIZE(objectArray)); taosArrayDestroyEx(objectArray, s3FreeObjectKey); } @@ -1156,7 +1156,7 @@ static S3Status getObjectDataCallback(int bufferSize, const char *buffer, void * } if (cbd->buf) { - memcpy(cbd->buf + cbd->buf_pos, buffer, bufferSize); + (void)memcpy(cbd->buf + cbd->buf_pos, buffer, bufferSize); cbd->buf_pos += bufferSize; cbd->status = S3StatusOK; return S3StatusOK; @@ -1196,7 +1196,7 @@ int32_t s3GetObjectBlock(const char *object_name, int64_t offset, int64_t size, TAOS_RETURN(TAOS_SYSTEM_ERROR(EIO)); } - *ppBlock = cbd.buf; + *ppBlock = (uint8_t *)cbd.buf; TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -1231,11 +1231,11 @@ int32_t s3GetObjectToFile(const char *object_name, const char *fileName) { if (cbd.status != S3StatusOK) { uError("%s: %d(%s)", __func__, cbd.status, cbd.err_msg); - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); TAOS_RETURN(TAOS_SYSTEM_ERROR(EIO)); } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -1250,9 +1250,9 @@ int32_t s3GetObjectsByPrefix(const char *prefix, const char *path) { tmp = (tmp == NULL) ? object : tmp + 1; char fileName[PATH_MAX] = {0}; if (path[strlen(path) - 1] != TD_DIRSEP_CHAR) { - snprintf(fileName, PATH_MAX, "%s%s%s", path, TD_DIRSEP, tmp); + (void)snprintf(fileName, PATH_MAX, "%s%s%s", path, TD_DIRSEP, tmp); } else { - snprintf(fileName, PATH_MAX, "%s%s", path, tmp); + (void)snprintf(fileName, PATH_MAX, "%s%s", path, tmp); } if (s3GetObjectToFile(object, fileName) != 0) { taosArrayDestroyEx(objectArray, s3FreeObjectKey); diff --git a/source/common/src/cos_cp.c b/source/common/src/cos_cp.c index d7be47ce45..e9af9c0306 100644 --- a/source/common/src/cos_cp.c +++ b/source/common/src/cos_cp.c @@ -43,12 +43,12 @@ static int32_t cos_cp_parse_body(char* cp_body, SCheckpoint* cp) { item = cJSON_GetObjectItem(json, "md5"); if (cJSON_IsString(item)) { - memcpy(cp->md5, item->valuestring, strlen(item->valuestring)); + (void)memcpy(cp->md5, item->valuestring, strlen(item->valuestring)); } item = cJSON_GetObjectItem(json, "upload_id"); if (cJSON_IsString(item)) { - strncpy(cp->upload_id, item->valuestring, 128); + (void)strncpy(cp->upload_id, item->valuestring, 128); } item2 = cJSON_GetObjectItem(json, "file"); @@ -65,12 +65,12 @@ static int32_t cos_cp_parse_body(char* cp_body, SCheckpoint* cp) { item = cJSON_GetObjectItem(item2, "path"); if (cJSON_IsString(item)) { - strncpy(cp->file_path, item->valuestring, TSDB_FILENAME_LEN); + (void)strncpy(cp->file_path, item->valuestring, TSDB_FILENAME_LEN); } item = cJSON_GetObjectItem(item2, "file_md5"); if (cJSON_IsString(item)) { - strncpy(cp->file_md5, item->valuestring, 64); + (void)strncpy(cp->file_md5, item->valuestring, 64); } } @@ -83,17 +83,17 @@ static int32_t cos_cp_parse_body(char* cp_body, SCheckpoint* cp) { item = cJSON_GetObjectItem(item2, "object_name"); if (cJSON_IsString(item)) { - strncpy(cp->object_name, item->valuestring, 128); + (void)strncpy(cp->object_name, item->valuestring, 128); } item = cJSON_GetObjectItem(item2, "object_last_modified"); if (cJSON_IsString(item)) { - strncpy(cp->object_last_modified, item->valuestring, 64); + (void)strncpy(cp->object_last_modified, item->valuestring, 64); } item = cJSON_GetObjectItem(item2, "object_etag"); if (cJSON_IsString(item)) { - strncpy(cp->object_etag, item->valuestring, 128); + (void)strncpy(cp->object_etag, item->valuestring, 128); } } @@ -141,7 +141,7 @@ static int32_t cos_cp_parse_body(char* cp_body, SCheckpoint* cp) { item3 = cJSON_GetObjectItem(item, "etag"); if (cJSON_IsString(item3)) { - strncpy(cp->parts[index].etag, item3->valuestring, 128); + (void)strncpy(cp->parts[index].etag, item3->valuestring, 128); } } } @@ -179,7 +179,7 @@ int32_t cos_cp_load(char const* filepath, SCheckpoint* checkpoint) { } else if (n != size) { TAOS_CHECK_GOTO(TSDB_CODE_FILE_CORRUPTED, &lino, _exit); } - taosCloseFile(&fd); + (void)taosCloseFile(&fd); cp_body[size] = '\0'; return cos_cp_parse_body(cp_body, checkpoint); @@ -189,7 +189,7 @@ _exit: uError("%s failed at line %d since %s", __func__, lino, tstrerror(code)); } if (fd) { - taosCloseFile(&fd); + (void)taosCloseFile(&fd); } if (cp_body) { taosMemoryFree(cp_body); @@ -309,7 +309,7 @@ int32_t cos_cp_dump(SCheckpoint* cp) { if (!item) { TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); } - cJSON_AddItemToArray(ajson, item); + (void)cJSON_AddItemToArray(ajson, item); if (NULL == cJSON_AddNumberToObject(item, "index", cp->parts[i].index)) { TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); @@ -346,7 +346,7 @@ void cos_cp_get_undo_parts(SCheckpoint* checkpoint, int* part_num, SCheckpointPa void cos_cp_update(SCheckpoint* checkpoint, int32_t part_index, char const* etag, uint64_t crc64) { checkpoint->parts[part_index].completed = 1; - strncpy(checkpoint->parts[part_index].etag, etag, 127); + (void)strncpy(checkpoint->parts[part_index].etag, etag, 127); checkpoint->parts[part_index].crc64 = crc64; } @@ -355,12 +355,12 @@ void cos_cp_build_upload(SCheckpoint* checkpoint, char const* filepath, int64_t int i = 0; checkpoint->cp_type = COS_CP_TYPE_UPLOAD; - memset(checkpoint->file_path, 0, TSDB_FILENAME_LEN); - strncpy(checkpoint->file_path, filepath, TSDB_FILENAME_LEN - 1); + (void)memset(checkpoint->file_path, 0, TSDB_FILENAME_LEN); + (void)strncpy(checkpoint->file_path, filepath, TSDB_FILENAME_LEN - 1); checkpoint->file_size = size; checkpoint->file_last_modified = mtime; - strncpy(checkpoint->upload_id, upload_id, 127); + (void)strncpy(checkpoint->upload_id, upload_id, 127); checkpoint->part_size = part_size; for (; i * part_size < size; i++) { diff --git a/source/common/src/tdataformat.c b/source/common/src/tdataformat.c index 27f865353e..dabdc630f5 100644 --- a/source/common/src/tdataformat.c +++ b/source/common/src/tdataformat.c @@ -310,7 +310,7 @@ static int32_t tRowBuildTupleRow(SArray *aColVal, const SRowBuildScanInfo *sinfo } } else { (void)memcpy(fixed + schema->columns[i].offset, &colValArray[colValIndex].value.val, - tDataTypes[schema->columns[i].type].bytes); + tDataTypes[schema->columns[i].type].bytes); } } else if (COL_VAL_IS_NULL(&colValArray[colValIndex])) { // NULL ROW_SET_BITMAP(bitmap, sinfo->tupleFlag, i - 1, BIT_FLG_NULL); @@ -384,13 +384,14 @@ static int32_t tRowBuildKVRow(SArray *aColVal, const SRowBuildScanInfo *sinfo, c payloadSize += tPutI16v(payload + payloadSize, colValArray[colValIndex].cid); payloadSize += tPutU32v(payload + payloadSize, colValArray[colValIndex].value.nData); if (colValArray[colValIndex].value.nData > 0) { - (void)memcpy(payload + payloadSize, colValArray[colValIndex].value.pData, colValArray[colValIndex].value.nData); + (void)memcpy(payload + payloadSize, colValArray[colValIndex].value.pData, + colValArray[colValIndex].value.nData); } payloadSize += colValArray[colValIndex].value.nData; } else { payloadSize += tPutI16v(payload + payloadSize, colValArray[colValIndex].cid); (void)memcpy(payload + payloadSize, &colValArray[colValIndex].value.val, - tDataTypes[schema->columns[i].type].bytes); + tDataTypes[schema->columns[i].type].bytes); payloadSize += tDataTypes[schema->columns[i].type].bytes; } } else if (COL_VAL_IS_NULL(&colValArray[colValIndex])) { // NULL @@ -476,11 +477,14 @@ int32_t tRowBuildFromBind(SBindInfo *infos, int32_t numOfInfos, bool infoSorted, value.pData = (uint8_t *)infos[iInfo].bind->buffer + infos[iInfo].bind->buffer_length * iRow; } else { (void)memcpy(&value.val, (uint8_t *)infos[iInfo].bind->buffer + infos[iInfo].bind->buffer_length * iRow, - infos[iInfo].bind->buffer_length); + infos[iInfo].bind->buffer_length); } colVal = COL_VAL_VALUE(infos[iInfo].columnId, value); } - taosArrayPush(colValArray, &colVal); + if (taosArrayPush(colValArray, &colVal) == NULL) { + code = TSDB_CODE_OUT_OF_MEMORY; + goto _exit; + } } SRow *row; @@ -689,7 +693,12 @@ static int32_t tRowMergeImpl(SArray *aRowP, STSchema *pTSchema, int32_t iStart, } } - if (pColVal) taosArrayPush(aColVal, pColVal); + if (pColVal) { + if (taosArrayPush(aColVal, pColVal) == NULL) { + code = TSDB_CODE_OUT_OF_MEMORY; + goto _exit; + } + } } // build @@ -1750,7 +1759,10 @@ int32_t tTagToValArray(const STag *pTag, SArray **ppArray) { offset = pTag->idx[iTag]; } tGetTagVal(p + offset, &tv, pTag->flags & TD_TAG_JSON); - taosArrayPush(*ppArray, &tv); + if (taosArrayPush(*ppArray, &tv) == NULL) { + code = TSDB_CODE_OUT_OF_MEMORY; + goto _err; + } } return code; @@ -1783,6 +1795,7 @@ void tTagSetCid(const STag *pTag, int16_t iTag, int16_t cid) { STSchema *tBuildTSchema(SSchema *aSchema, int32_t numOfCols, int32_t version) { STSchema *pTSchema = taosMemoryCalloc(1, sizeof(STSchema) + sizeof(STColumn) * numOfCols); if (pTSchema == NULL) { + terrno = TSDB_CODE_OUT_OF_MEMORY; return NULL; } @@ -2592,7 +2605,8 @@ static FORCE_INLINE void tColDataGetValue4(SColData *pColData, int32_t iVal, SCo } value.pData = pColData->pData + pColData->aOffset[iVal]; } else { - (void)memcpy(&value.val, pColData->pData + tDataTypes[pColData->type].bytes * iVal, tDataTypes[pColData->type].bytes); + (void)memcpy(&value.val, pColData->pData + tDataTypes[pColData->type].bytes * iVal, + tDataTypes[pColData->type].bytes); } *pColVal = COL_VAL_VALUE(pColData->cid, value); } @@ -3118,10 +3132,10 @@ static int32_t tColDataCopyRowCell(SColData *pFromColData, int32_t iFromRow, SCo } (void)memcpy(pToColData->pData + pToColData->aOffset[iToRow], pFromColData->pData + pFromColData->aOffset[iFromRow], - nData); + nData); } else { (void)memcpy(&pToColData->pData[TYPE_BYTES[pToColData->type] * iToRow], - &pFromColData->pData[TYPE_BYTES[pToColData->type] * iFromRow], TYPE_BYTES[pToColData->type]); + &pFromColData->pData[TYPE_BYTES[pToColData->type] * iFromRow], TYPE_BYTES[pToColData->type]); } return code; } @@ -3209,12 +3223,12 @@ static int32_t tColDataMergeSortMerge(SColData *aColData, int32_t start, int32_t if (end > start) { aDstColData = taosMemoryCalloc(1, sizeof(SColData) * nColData); - for (int c = 0; c < nColData; ++c) { - tColDataInit(&aDstColData[c], aColData[c].cid, aColData[c].type, aColData[c].cflag); - } if (aDstColData == NULL) { return TSDB_CODE_OUT_OF_MEMORY; } + for (int c = 0; c < nColData; ++c) { + tColDataInit(&aDstColData[c], aColData[c].cid, aColData[c].type, aColData[c].cflag); + } } tColDataArrGetRowKey(aColData, nColData, i, &keyi); @@ -3360,7 +3374,7 @@ static void tColDataMergeImpl(SColData *pColData, int32_t iStart, int32_t iEnd / } else { if (iv != iStart) { (void)memcpy(&pColData->pData[TYPE_BYTES[pColData->type] * iStart], - &pColData->pData[TYPE_BYTES[pColData->type] * iv], TYPE_BYTES[pColData->type]); + &pColData->pData[TYPE_BYTES[pColData->type] * iv], TYPE_BYTES[pColData->type]); } memmove(&pColData->pData[TYPE_BYTES[pColData->type] * (iStart + 1)], &pColData->pData[TYPE_BYTES[pColData->type] * iEnd], @@ -4476,6 +4490,9 @@ int32_t tDecompressData(void *input, // input buffer = &local; } code = tBufferEnsureCapacity(buffer, info->originalSize + COMP_OVERFLOW_BYTES); + if (code) { + return code; + } int32_t decompressedSize = tDataCompress[info->dataType].decompFunc( input, // input diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index 8ed5191c82..04e3316bed 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -322,7 +322,7 @@ int64_t tsmaDataDeleteMark = 1000 * 60 * 60 * 24; // in ms, default to 1d #ifndef _STORAGE int32_t taosSetTfsCfg(SConfig *pCfg) { SConfigItem *pItem = cfgGetItem(pCfg, "dataDir"); - memset(tsDataDir, 0, PATH_MAX); + (void)memset(tsDataDir, 0, PATH_MAX); int32_t size = taosArrayGetSize(pItem->array); tsDiskCfgNum = 1; @@ -332,10 +332,11 @@ int32_t taosSetTfsCfg(SConfig *pCfg) { tsDiskCfg[0].disable = 0; tstrncpy(tsDataDir, pItem->str, PATH_MAX); if (taosMulMkDir(tsDataDir) != 0) { - uError("failed to create dataDir:%s", tsDataDir); - return -1; + int32_t code = TAOS_SYSTEM_ERROR(errno); + uError("failed to create dataDir:%s, since:%s", tsDataDir, tstrerror(code)); + TAOS_RETURN(code); } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } #else int32_t taosSetTfsCfg(SConfig *pCfg); @@ -344,12 +345,12 @@ int32_t taosSetTfsCfg(SConfig *pCfg); int32_t taosSetS3Cfg(SConfig *pCfg) { tstrncpy(tsS3AccessKey, cfgGetItem(pCfg, "s3Accesskey")->str, TSDB_FQDN_LEN); if (tsS3AccessKey[0] == '<') { - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } char *colon = strchr(tsS3AccessKey, ':'); if (!colon) { uError("invalid access key:%s", tsS3AccessKey); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } *colon = '\0'; tstrncpy(tsS3AccessKeyId, tsS3AccessKey, TSDB_FQDN_LEN); @@ -369,7 +370,7 @@ int32_t taosSetS3Cfg(SConfig *pCfg) { char *appid = strrchr(tsS3BucketName, '-'); if (!appid) { uError("failed to locate appid in bucket:%s", tsS3BucketName); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } else { tstrncpy(tsS3AppId, appid + 1, TSDB_FQDN_LEN); } @@ -388,7 +389,7 @@ int32_t taosSetS3Cfg(SConfig *pCfg) { #endif } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } struct SConfig *taosGetCfg() { return tsCfg; } @@ -398,7 +399,7 @@ static int32_t taosLoadCfg(SConfig *pCfg, const char **envCmd, const char *input char cfgDir[PATH_MAX] = {0}; char cfgFile[PATH_MAX + 100] = {0}; - taosExpandDir(inputCfgDir, cfgDir, PATH_MAX); + TAOS_CHECK_RETURN(taosExpandDir(inputCfgDir, cfgDir, PATH_MAX)); char lastC = cfgDir[strlen(cfgDir) - 1]; char *tdDirsep = TD_DIRSEP; if (lastC == '\\' || lastC == '/') { @@ -406,217 +407,206 @@ static int32_t taosLoadCfg(SConfig *pCfg, const char **envCmd, const char *input } if (taosIsDir(cfgDir)) { #ifdef CUS_PROMPT - snprintf(cfgFile, sizeof(cfgFile), - "%s" - "%s" - "%s.cfg", - cfgDir, tdDirsep, CUS_PROMPT); + (void)snprintf(cfgFile, sizeof(cfgFile), + "%s" + "%s" + "%s.cfg", + cfgDir, tdDirsep, CUS_PROMPT); #else - snprintf(cfgFile, sizeof(cfgFile), - "%s" - "%s" - "taos.cfg", - cfgDir, tdDirsep); + (void)snprintf(cfgFile, sizeof(cfgFile), + "%s" + "%s" + "taos.cfg", + cfgDir, tdDirsep); #endif } else { tstrncpy(cfgFile, cfgDir, sizeof(cfgDir)); } if (apolloUrl != NULL && apolloUrl[0] == '\0') { - cfgGetApollUrl(envCmd, envFile, apolloUrl); + TAOS_CHECK_RETURN(cfgGetApollUrl(envCmd, envFile, apolloUrl)); } if (cfgLoad(pCfg, CFG_STYPE_APOLLO_URL, apolloUrl) != 0) { uError("failed to load from apollo url:%s since %s", apolloUrl, terrstr()); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } if (cfgLoad(pCfg, CFG_STYPE_CFG_FILE, cfgFile) != 0) { uError("failed to load from cfg file:%s since %s", cfgFile, terrstr()); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } if (cfgLoad(pCfg, CFG_STYPE_ENV_FILE, envFile) != 0) { uError("failed to load from env file:%s since %s", envFile, terrstr()); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } if (cfgLoad(pCfg, CFG_STYPE_ENV_VAR, NULL) != 0) { uError("failed to load from global env variables since %s", terrstr()); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } if (cfgLoad(pCfg, CFG_STYPE_ENV_CMD, envCmd) != 0) { uError("failed to load from cmd env variables since %s", terrstr()); - return -1; + TAOS_RETURN(TSDB_CODE_INVALID_CFG); } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } int32_t taosAddClientLogCfg(SConfig *pCfg) { - if (cfgAddDir(pCfg, "configDir", configDir, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddDir(pCfg, "scriptDir", configDir, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddDir(pCfg, "logDir", tsLogDir, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddFloat(pCfg, "minimalLogDirGB", 1.0f, 0.001f, 10000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfLogLines", tsNumOfLogLines, 1000, 2000000000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH) != 0) - return -1; - if (cfgAddBool(pCfg, "asyncLog", tsAsyncLog, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "logKeepDays", 0, -365000, 365000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "debugFlag", 0, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "simDebugFlag", simDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "tmrDebugFlag", tmrDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "uDebugFlag", uDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "rpcDebugFlag", rpcDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "jniDebugFlag", jniDebugFlag, 0, 255, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "qDebugFlag", qDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "cDebugFlag", cDebugFlag, 0, 255, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - return 0; + TAOS_CHECK_RETURN(cfgAddDir(pCfg, "configDir", configDir, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddDir(pCfg, "scriptDir", configDir, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddDir(pCfg, "logDir", tsLogDir, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "minimalLogDirGB", 1.0f, 0.001f, 10000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "numOfLogLines", tsNumOfLogLines, 1000, 2000000000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "asyncLog", tsAsyncLog, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "logKeepDays", 0, -365000, 365000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "debugFlag", 0, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "simDebugFlag", simDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tmrDebugFlag", tmrDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "uDebugFlag", uDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "rpcDebugFlag", rpcDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "jniDebugFlag", jniDebugFlag, 0, 255, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "qDebugFlag", qDebugFlag, 0, 255, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "cDebugFlag", cDebugFlag, 0, 255, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t taosAddServerLogCfg(SConfig *pCfg) { - if (cfgAddInt32(pCfg, "dDebugFlag", dDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "vDebugFlag", vDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "mDebugFlag", mDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "wDebugFlag", wDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "sDebugFlag", sDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "tsdbDebugFlag", tsdbDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "tqDebugFlag", tqDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "fsDebugFlag", fsDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "udfDebugFlag", udfDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "smaDebugFlag", smaDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "idxDebugFlag", idxDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "tdbDebugFlag", tdbDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "metaDebugFlag", metaDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "stDebugFlag", stDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "sndDebugFlag", sndDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - return 0; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "dDebugFlag", dDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "vDebugFlag", vDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "mDebugFlag", mDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "wDebugFlag", wDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "sDebugFlag", sDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tsdbDebugFlag", tsdbDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tqDebugFlag", tqDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "fsDebugFlag", fsDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "udfDebugFlag", udfDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "smaDebugFlag", smaDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "idxDebugFlag", idxDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tdbDebugFlag", tdbDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "metaDebugFlag", metaDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "stDebugFlag", stDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "sndDebugFlag", sndDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t taosAddClientCfg(SConfig *pCfg) { char defaultFqdn[TSDB_FQDN_LEN] = {0}; int32_t defaultServerPort = 6030; if (taosGetFqdn(defaultFqdn) != 0) { - strcpy(defaultFqdn, "localhost"); + (void)strcpy(defaultFqdn, "localhost"); } - if (cfgAddString(pCfg, "firstEp", "", CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddString(pCfg, "secondEp", "", CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddString(pCfg, "fqdn", defaultFqdn, CFG_SCOPE_SERVER, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "serverPort", defaultServerPort, 1, 65056, CFG_SCOPE_SERVER, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddDir(pCfg, "tempDir", tsTempDir, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddFloat(pCfg, "minimalTmpDirGB", 1.0f, 0.001f, 10000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "shellActivityTimer", tsShellActivityTimer, 1, 120, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddInt32(pCfg, "compressMsgSize", tsCompressMsgSize, -1, 100000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddInt32(pCfg, "queryPolicy", tsQueryPolicy, 1, 4, CFG_SCOPE_CLIENT, CFG_DYN_ENT_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "enableQueryHb", tsEnableQueryHb, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "enableScience", tsEnableScience, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "querySmaOptimize", tsQuerySmaOptimize, 0, 1, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "queryPlannerTrace", tsQueryPlannerTrace, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "queryNodeChunkSize", tsQueryNodeChunkSize, 1024, 128 * 1024, CFG_SCOPE_CLIENT, - CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddBool(pCfg, "queryUseNodeAllocator", tsQueryUseNodeAllocator, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddBool(pCfg, "keepColumnName", tsKeepColumnName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddString(pCfg, "smlChildTableName", tsSmlChildTableName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddString(pCfg, "smlAutoChildTableNameDelimiter", tsSmlAutoChildTableNameDelimiter, CFG_SCOPE_CLIENT, - CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddString(pCfg, "smlTagName", tsSmlTagName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddString(pCfg, "smlTsDefaultName", tsSmlTsDefaultName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "smlDot2Underline", tsSmlDot2Underline, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - // if (cfgAddBool(pCfg, "smlDataFormat", tsSmlDataFormat, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) return -1; - // if (cfgAddInt32(pCfg, "smlBatchSize", tsSmlBatchSize, 1, INT32_MAX, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) - // return -1; - if (cfgAddInt32(pCfg, "maxShellConns", tsMaxShellConns, 10, 50000000, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "maxInsertBatchRows", tsMaxInsertBatchRows, 1, INT32_MAX, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != - 0) - return -1; - if (cfgAddInt32(pCfg, "maxRetryWaitTime", tsMaxRetryWaitTime, 0, 86400000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddBool(pCfg, "useAdapter", tsUseAdapter, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "crashReporting", tsEnableCrashReport, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt64(pCfg, "queryMaxConcurrentTables", tsQueryMaxConcurrentTables, INT64_MIN, INT64_MAX, CFG_SCOPE_CLIENT, - CFG_DYN_NONE) != 0) - return -1; - if (cfgAddInt32(pCfg, "metaCacheMaxSize", tsMetaCacheMaxSize, -1, INT32_MAX, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) - return -1; + TAOS_CHECK_RETURN(cfgAddString(pCfg, "firstEp", "", CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "secondEp", "", CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "fqdn", defaultFqdn, CFG_SCOPE_SERVER, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "serverPort", defaultServerPort, 1, 65056, CFG_SCOPE_SERVER, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddDir(pCfg, "tempDir", tsTempDir, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "minimalTmpDirGB", 1.0f, 0.001f, 10000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "shellActivityTimer", tsShellActivityTimer, 1, 120, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "compressMsgSize", tsCompressMsgSize, -1, 100000000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "queryPolicy", tsQueryPolicy, 1, 4, CFG_SCOPE_CLIENT, CFG_DYN_ENT_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "enableQueryHb", tsEnableQueryHb, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "enableScience", tsEnableScience, CFG_SCOPE_CLIENT, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "querySmaOptimize", tsQuerySmaOptimize, 0, 1, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "queryPlannerTrace", tsQueryPlannerTrace, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "queryNodeChunkSize", tsQueryNodeChunkSize, 1024, 128 * 1024, CFG_SCOPE_CLIENT, + CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddBool(pCfg, "queryUseNodeAllocator", tsQueryUseNodeAllocator, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "keepColumnName", tsKeepColumnName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "smlChildTableName", tsSmlChildTableName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "smlAutoChildTableNameDelimiter", tsSmlAutoChildTableNameDelimiter, + CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "smlTagName", tsSmlTagName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "smlTsDefaultName", tsSmlTsDefaultName, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "smlDot2Underline", tsSmlDot2Underline, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxShellConns", tsMaxShellConns, 10, 50000000, CFG_SCOPE_CLIENT, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxInsertBatchRows", tsMaxInsertBatchRows, 1, INT32_MAX, CFG_SCOPE_CLIENT, + CFG_DYN_CLIENT) != 0); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "maxRetryWaitTime", tsMaxRetryWaitTime, 0, 86400000, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "useAdapter", tsUseAdapter, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "crashReporting", tsEnableCrashReport, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "queryMaxConcurrentTables", tsQueryMaxConcurrentTables, INT64_MIN, INT64_MAX, + CFG_SCOPE_CLIENT, CFG_DYN_NONE)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "metaCacheMaxSize", tsMetaCacheMaxSize, -1, INT32_MAX, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); tsNumOfRpcThreads = tsNumOfCores / 2; tsNumOfRpcThreads = TRANGE(tsNumOfRpcThreads, 2, TSDB_MAX_RPC_THREADS); - if (cfgAddInt32(pCfg, "numOfRpcThreads", tsNumOfRpcThreads, 1, 1024, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfRpcThreads", tsNumOfRpcThreads, 1, 1024, CFG_SCOPE_BOTH, CFG_DYN_NONE)); tsNumOfRpcSessions = TRANGE(tsNumOfRpcSessions, 100, 100000); - if (cfgAddInt32(pCfg, "numOfRpcSessions", tsNumOfRpcSessions, 1, 100000, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) - return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfRpcSessions", tsNumOfRpcSessions, 1, 100000, CFG_SCOPE_BOTH, CFG_DYN_NONE)); tsTimeToGetAvailableConn = TRANGE(tsTimeToGetAvailableConn, 20, 10000000); - if (cfgAddInt32(pCfg, "timeToGetAvailableConn", tsTimeToGetAvailableConn, 20, 1000000, CFG_SCOPE_BOTH, - CFG_DYN_NONE) != 0) - return -1; + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "timeToGetAvailableConn", tsTimeToGetAvailableConn, 20, 1000000, CFG_SCOPE_BOTH, CFG_DYN_NONE)); tsKeepAliveIdle = TRANGE(tsKeepAliveIdle, 1, 72000); - if (cfgAddInt32(pCfg, "keepAliveIdle", tsKeepAliveIdle, 1, 7200000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "keepAliveIdle", tsKeepAliveIdle, 1, 7200000, CFG_SCOPE_BOTH, CFG_DYN_ENT_BOTH)); tsNumOfTaskQueueThreads = tsNumOfCores; tsNumOfTaskQueueThreads = TMAX(tsNumOfTaskQueueThreads, 16); - if (cfgAddInt32(pCfg, "numOfTaskQueueThreads", tsNumOfTaskQueueThreads, 4, 1024, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) - return -1; - if (cfgAddBool(pCfg, "experimental", tsExperimental, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "numOfTaskQueueThreads", tsNumOfTaskQueueThreads, 4, 1024, CFG_SCOPE_CLIENT, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "experimental", tsExperimental, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); - if (cfgAddBool(pCfg, "multiResultFunctionStarReturnTags", tsMultiResultFunctionStarReturnTags, CFG_SCOPE_CLIENT, - CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddInt32(pCfg, "countAlwaysReturnValue", tsCountAlwaysReturnValue, 0, 1, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddInt32(pCfg, "maxTsmaCalcDelay", tsMaxTsmaCalcDelay, 600, 86400, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) - return -1; - if (cfgAddInt32(pCfg, "tsmaDataDeleteMark", tsmaDataDeleteMark, 60 * 60 * 1000, INT64_MAX, CFG_SCOPE_CLIENT, - CFG_DYN_CLIENT) != 0) - return -1; - return 0; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "multiResultFunctionStarReturnTags", tsMultiResultFunctionStarReturnTags, + CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "countAlwaysReturnValue", tsCountAlwaysReturnValue, 0, 1, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN( + cfgAddInt32(pCfg, "maxTsmaCalcDelay", tsMaxTsmaCalcDelay, 600, 86400, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tsmaDataDeleteMark", tsmaDataDeleteMark, 60 * 60 * 1000, INT64_MAX, + CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t taosAddSystemCfg(SConfig *pCfg) { SysNameInfo info = taosGetSysNameInfo(); - if (cfgAddTimezone(pCfg, "timezone", tsTimezoneStr, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddLocale(pCfg, "locale", tsLocale, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddCharset(pCfg, "charset", tsCharset, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "assert", tsAssert, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddBool(pCfg, "enableCoreFile", 1, CFG_SCOPE_BOTH, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddFloat(pCfg, "numOfCores", tsNumOfCores, 1, 100000, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddTimezone(pCfg, "timezone", tsTimezoneStr, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddLocale(pCfg, "locale", tsLocale, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddCharset(pCfg, "charset", tsCharset, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "assert", tsAssert, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "enableCoreFile", 1, CFG_SCOPE_BOTH, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "numOfCores", tsNumOfCores, 1, 100000, CFG_SCOPE_BOTH, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "ssd42", tsSSE42Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "avx", tsAVXSupported, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "avx2", tsAVX2Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "fma", tsFMASupported, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "avx512", tsAVX512Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "simdEnable", tsSIMDEnable, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "AVX512Enable", tsAVX512Enable, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "tagFilterCache", tsTagFilterCache, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "ssd42", tsSSE42Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "avx", tsAVXSupported, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "avx2", tsAVX2Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "fma", tsFMASupported, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "avx512", tsAVX512Supported, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "simdEnable", tsSIMDEnable, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "AVX512Enable", tsAVX512Enable, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "tagFilterCache", tsTagFilterCache, CFG_SCOPE_BOTH, CFG_DYN_NONE)); - if (cfgAddInt64(pCfg, "openMax", tsOpenMax, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "openMax", tsOpenMax, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE)); #if !defined(_ALPINE) - if (cfgAddInt64(pCfg, "streamMax", tsStreamMax, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "streamMax", tsStreamMax, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE)); #endif - if (cfgAddInt32(pCfg, "pageSizeKB", tsPageSizeKB, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt64(pCfg, "totalMemoryKB", tsTotalMemoryKB, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "os sysname", info.sysname, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "os nodename", info.nodename, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "os release", info.release, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "os version", info.version, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "os machine", info.machine, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "pageSizeKB", tsPageSizeKB, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "totalMemoryKB", tsTotalMemoryKB, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "os sysname", info.sysname, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "os nodename", info.nodename, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "os release", info.release, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "os version", info.version, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "os machine", info.machine, CFG_SCOPE_BOTH, CFG_DYN_NONE)); - if (cfgAddString(pCfg, "version", version, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "compatible_version", compatible_version, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "gitinfo", gitinfo, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "buildinfo", buildinfo, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - return 0; + TAOS_CHECK_RETURN(cfgAddString(pCfg, "version", version, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "compatible_version", compatible_version, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "gitinfo", gitinfo, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "buildinfo", buildinfo, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t taosAddServerCfg(SConfig *pCfg) { @@ -651,144 +641,141 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { tsRpcQueueMemoryAllowed = TRANGE(tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10LL, TSDB_MAX_MSG_SIZE * 10000LL); // clang-format off - if (cfgAddDir(pCfg, "dataDir", tsDataDir, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddFloat(pCfg, "minimalDataDirGB", 2.0f, 0.001f, 10000000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "supportVnodes", tsNumOfSupportVnodes, 0, 4096, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddDir(pCfg, "dataDir", tsDataDir, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "minimalDataDirGB", 2.0f, 0.001f, 10000000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "supportVnodes", tsNumOfSupportVnodes, 0, 4096, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddString(pCfg, "encryptAlgorithm", tsEncryptAlgorithm, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "encryptScope", tsEncryptScope, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddString(pCfg, "encryptAlgorithm", tsEncryptAlgorithm, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "encryptScope", tsEncryptScope, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "statusInterval", tsStatusInterval, 1, 30, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "minSlidingTime", tsMinSlidingTime, 1, 1000000, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; - if (cfgAddInt32(pCfg, "minIntervalTime", tsMinIntervalTime, 1, 1000000, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "statusInterval", tsStatusInterval, 1, 30, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "minSlidingTime", tsMinSlidingTime, 1, 1000000, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "minIntervalTime", tsMinIntervalTime, 1, 1000000, CFG_SCOPE_CLIENT, CFG_DYN_CLIENT)); - if (cfgAddInt32(pCfg, "queryBufferSize", tsQueryBufferSize, -1, 500000000000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "queryRspPolicy", tsQueryRspPolicy, 0, 1, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfCommitThreads", tsNumOfCommitThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "retentionSpeedLimitMB", tsRetentionSpeedLimitMB, 0, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "queryBufferSize", tsQueryBufferSize, -1, 500000000000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "queryRspPolicy", tsQueryRspPolicy, 0, 1, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfCommitThreads", tsNumOfCommitThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "retentionSpeedLimitMB", tsRetentionSpeedLimitMB, 0, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "numOfMnodeReadThreads", tsNumOfMnodeReadThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfVnodeQueryThreads", tsNumOfVnodeQueryThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddFloat(pCfg, "ratioOfVnodeStreamThreads", tsRatioOfVnodeStreamThreads, 0.01, 4, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfVnodeFetchThreads", tsNumOfVnodeFetchThreads, 4, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfMnodeReadThreads", tsNumOfMnodeReadThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfVnodeQueryThreads", tsNumOfVnodeQueryThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "ratioOfVnodeStreamThreads", tsRatioOfVnodeStreamThreads, 0.01, 4, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfVnodeFetchThreads", tsNumOfVnodeFetchThreads, 4, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "numOfVnodeRsmaThreads", tsNumOfVnodeRsmaThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfQnodeQueryThreads", tsNumOfQnodeQueryThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfVnodeRsmaThreads", tsNumOfVnodeRsmaThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfQnodeQueryThreads", tsNumOfQnodeQueryThreads, 1, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - // tsNumOfQnodeFetchThreads = tsNumOfCores / 2; - // tsNumOfQnodeFetchThreads = TMAX(tsNumOfQnodeFetchThreads, 4); - // if (cfgAddInt32(pCfg, "numOfQnodeFetchThreads", tsNumOfQnodeFetchThreads, 1, 1024, 0) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfSnodeSharedThreads", tsNumOfSnodeStreamThreads, 2, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "numOfSnodeUniqueThreads", tsNumOfSnodeWriteThreads, 2, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "numOfSnodeSharedThreads", tsNumOfSnodeStreamThreads, 2, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "numOfSnodeUniqueThreads", tsNumOfSnodeWriteThreads, 2, 1024, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "rpcQueueMemoryAllowed", tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10L, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE)); - if (cfgAddInt64(pCfg, "rpcQueueMemoryAllowed", tsRpcQueueMemoryAllowed, TSDB_MAX_MSG_SIZE * 10L, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "syncElectInterval", tsElectInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "syncHeartbeatInterval", tsHeartbeatInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "syncHeartbeatTimeout", tsHeartbeatTimeout, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "syncSnapReplMaxWaitN", tsSnapReplMaxWaitN, 16, (TSDB_SYNC_SNAP_BUFFER_SIZE >> 2), CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "syncElectInterval", tsElectInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "syncHeartbeatInterval", tsHeartbeatInterval, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "syncHeartbeatTimeout", tsHeartbeatTimeout, 10, 1000 * 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "syncSnapReplMaxWaitN", tsSnapReplMaxWaitN, 16, (TSDB_SYNC_SNAP_BUFFER_SIZE >> 2), CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "arbHeartBeatIntervalSec", tsArbHeartBeatIntervalSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "arbCheckSyncIntervalSec", tsArbCheckSyncIntervalSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "arbSetAssignedTimeoutSec", tsArbSetAssignedTimeoutSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt32(pCfg, "arbHeartBeatIntervalSec", tsArbHeartBeatIntervalSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "arbCheckSyncIntervalSec", tsArbCheckSyncIntervalSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "arbSetAssignedTimeoutSec", tsArbSetAssignedTimeoutSec, 1, 60 * 24 * 2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "mndSdbWriteDelta", tsMndSdbWriteDelta, 20, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "mndLogRetention", tsMndLogRetention, 500, 10000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "skipGrant", tsMndSkipGrant, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt64(pCfg, "mndSdbWriteDelta", tsMndSdbWriteDelta, 20, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt64(pCfg, "mndLogRetention", tsMndLogRetention, 500, 10000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "skipGrant", tsMndSkipGrant, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "monitor", tsEnableMonitor, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "monitorInterval", tsMonitorInterval, 1, 86400, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); - if (cfgAddBool(pCfg, "monitor", tsEnableMonitor, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "monitorInterval", tsMonitorInterval, 1, 86400, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "slowLogThresholdTest", tsSlowLogThresholdTest, 0, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "slowLogThreshold", tsSlowLogThreshold, 1, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "slowLogMaxLen", tsSlowLogMaxLen, 1, 16384, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "slowLogScope", tsSlowLogScopeString, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "slowLogExceptDb", tsSlowLogExceptDb, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); - if (cfgAddInt32(pCfg, "slowLogThresholdTest", tsSlowLogThresholdTest, 0, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "slowLogThreshold", tsSlowLogThreshold, 1, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "slowLogMaxLen", tsSlowLogMaxLen, 1, 16384, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddString(pCfg, "slowLogScope", tsSlowLogScopeString, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddString(pCfg, "slowLogExceptDb", tsSlowLogExceptDb, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddString(pCfg, "monitorFqdn", tsMonitorFqdn, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "monitorPort", tsMonitorPort, 1, 65056, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "monitorMaxLogs", tsMonitorMaxLogs, 1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "monitorComp", tsMonitorComp, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "monitorLogProtocol", tsMonitorLogProtocol, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "monitorForceV2", tsMonitorForceV2, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddString(pCfg, "monitorFqdn", tsMonitorFqdn, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "monitorPort", tsMonitorPort, 1, 65056, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "monitorMaxLogs", tsMonitorMaxLogs, 1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "monitorComp", tsMonitorComp, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "monitorLogProtocol", tsMonitorLogProtocol, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddBool(pCfg, "monitorForceV2", tsMonitorForceV2, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "audit", tsEnableAudit, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "auditCreateTable", tsEnableAuditCreateTable, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "auditInterval", tsAuditInterval, 500, 200000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "audit", tsEnableAudit, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddBool(pCfg, "auditCreateTable", tsEnableAuditCreateTable, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "auditInterval", tsAuditInterval, 500, 200000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "telemetryReporting", tsEnableTelem, CFG_SCOPE_BOTH, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "telemetryInterval", tsTelemInterval, 1, 200000, CFG_SCOPE_BOTH, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "telemetryServer", tsTelemServer, CFG_SCOPE_BOTH, CFG_DYN_BOTH)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "telemetryPort", tsTelemPort, 1, 65056, CFG_SCOPE_BOTH, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "telemetryReporting", tsEnableTelem, CFG_SCOPE_BOTH, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "telemetryInterval", tsTelemInterval, 1, 200000, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "telemetryServer", tsTelemServer, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; - if (cfgAddInt32(pCfg, "telemetryPort", tsTelemPort, 1, 65056, CFG_SCOPE_BOTH, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "rsyncPort", tsRsyncPort, 1, 65535, CFG_SCOPE_BOTH, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "snodeAddress", tsSnodeAddress, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "checkpointBackupDir", tsCheckpointBackupDir, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); - if (cfgAddInt32(pCfg, "rsyncPort", tsRsyncPort, 1, 65535, CFG_SCOPE_BOTH, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddString(pCfg, "snodeAddress", tsSnodeAddress, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddString(pCfg, "checkpointBackupDir", tsCheckpointBackupDir, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tmqMaxTopicNum", tmqMaxTopicNum, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "tmqMaxTopicNum", tmqMaxTopicNum, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "tmqRowSize", tmqRowSize, 1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "tmqRowSize", tmqRowSize, 1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxTsmaNum", tsMaxTsmaNum, 0, 3, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "transPullupInterval", tsTransPullupInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "compactPullupInterval", tsCompactPullupInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "mqRebalanceInterval", tsMqRebalanceInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "maxTsmaNum", tsMaxTsmaNum, 0, 3, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "transPullupInterval", tsTransPullupInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "compactPullupInterval", tsCompactPullupInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "mqRebalanceInterval", tsMqRebalanceInterval, 1, 10000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "ttlUnit", tsTtlUnit, 1, 86400 * 365, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "ttlPushInterval", tsTtlPushIntervalSec, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "ttlBatchDropNum", tsTtlBatchDropNum, 0, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "ttlChangeOnWrite", tsTtlChangeOnWrite, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "ttlFlushThreshold", tsTtlFlushThreshold, -1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "trimVDbIntervalSec", tsTrimVDbIntervalSec, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "s3MigrateIntervalSec", tsS3MigrateIntervalSec, 600, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "s3MigrateEnabled", tsS3MigrateEnabled, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "uptimeInterval", tsUptimeInterval, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "queryRsmaTolerance", tsQueryRsmaTolerance, 0, 900000, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "timeseriesThreshold", tsTimeSeriesThreshold, 0, 2000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "ttlUnit", tsTtlUnit, 1, 86400 * 365, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "ttlPushInterval", tsTtlPushIntervalSec, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "ttlBatchDropNum", tsTtlBatchDropNum, 0, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddBool(pCfg, "ttlChangeOnWrite", tsTtlChangeOnWrite, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; if (cfgAddInt32(pCfg, "ttlFlushThreshold", tsTtlFlushThreshold, -1, 1000000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "trimVDbIntervalSec", tsTrimVDbIntervalSec, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "s3MigrateIntervalSec", tsS3MigrateIntervalSec, 600, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddBool(pCfg, "s3MigrateEnabled", tsS3MigrateEnabled, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "uptimeInterval", tsUptimeInterval, 1, 100000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "queryRsmaTolerance", tsQueryRsmaTolerance, 0, 900000, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "timeseriesThreshold", tsTimeSeriesThreshold, 0, 2000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "walFsyncDataSizeLimit", tsWalFsyncDataSizeLimit, 100 * 1024 * 1024, INT64_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddInt64(pCfg, "walFsyncDataSizeLimit", tsWalFsyncDataSizeLimit, 100 * 1024 * 1024, INT64_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "udf", tsStartUdfd, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "udfdResFuncs", tsUdfdResFuncs, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "udfdLdLibPath", tsUdfdLdLibPath, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "udf", tsStartUdfd, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "udfdResFuncs", tsUdfdResFuncs, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "udfdLdLibPath", tsUdfdLdLibPath, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "disableStream", tsDisableStream, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "streamBufferSize", tsStreamBufferSize, 0, INT64_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "streamAggCnt", tsStreamAggCnt, 2, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "disableStream", tsDisableStream, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt64(pCfg, "streamBufferSize", tsStreamBufferSize, 0, INT64_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt64(pCfg, "streamAggCnt", tsStreamAggCnt, 2, INT32_MAX, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "checkpointInterval", tsStreamCheckpointInterval, 60, 1800, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "streamSinkDataRate", tsSinkDataRate, 0.1, 5, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "concurrentCheckpoint", tsMaxConcurrentCheckpoint, 1, 10, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "checkpointInterval", tsStreamCheckpointInterval, 60, 1800, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddFloat(pCfg, "streamSinkDataRate", tsSinkDataRate, 0.1, 5, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "concurrentCheckpoint", tsMaxConcurrentCheckpoint, 1, 10, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "cacheLazyLoadThreshold", tsCacheLazyLoadThreshold, 0, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); - if (cfgAddInt32(pCfg, "cacheLazyLoadThreshold", tsCacheLazyLoadThreshold, 0, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "fPrecision", tsFPrecision, 0.0f, 100000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "dPrecision", tsDPrecision, 0.0f, 1000000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxRange", tsMaxRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "curRange", tsCurRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "ifAdtFse", tsIfAdtFse, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "compressor", tsCompressor, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddFloat(pCfg, "fPrecision", tsFPrecision, 0.0f, 100000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddFloat(pCfg, "dPrecision", tsDPrecision, 0.0f, 1000000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "maxRange", tsMaxRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "curRange", tsCurRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddBool(pCfg, "ifAdtFse", tsIfAdtFse, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "compressor", tsCompressor, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "filterScalarMode", tsFilterScalarMode, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxStreamBackendCache", tsMaxStreamBackendCache, 16, 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "pqSortMemThreshold", tsPQSortMemThreshold, 1, 10240, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "resolveFQDNRetryTime", tsResolveFQDNRetryTime, 1, 10240, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddBool(pCfg, "filterScalarMode", tsFilterScalarMode, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "maxStreamBackendCache", tsMaxStreamBackendCache, 16, 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "pqSortMemThreshold", tsPQSortMemThreshold, 1, 10240, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddInt32(pCfg, "resolveFQDNRetryTime", tsResolveFQDNRetryTime, 1, 10240, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddString(pCfg, "s3Accesskey", tsS3AccessKey, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "s3Endpoint", tsS3Endpoint, CFG_SCOPE_SERVER, CFG_DYN_NONE)); + TAOS_CHECK_RETURN(cfgAddString(pCfg, "s3BucketName", tsS3BucketName, CFG_SCOPE_SERVER, CFG_DYN_NONE)); - if (cfgAddString(pCfg, "s3Accesskey", tsS3AccessKey, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "s3Endpoint", tsS3Endpoint, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - if (cfgAddString(pCfg, "s3BucketName", tsS3BucketName, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; - - if (cfgAddInt32(pCfg, "s3PageCacheSize", tsS3PageCacheSize, 4, 1024 * 1024 * 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddInt32(pCfg, "s3UploadDelaySec", tsS3UploadDelaySec, 1, 60 * 60 * 24 * 30, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "s3PageCacheSize", tsS3PageCacheSize, 4, 1024 * 1024 * 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "s3UploadDelaySec", tsS3UploadDelaySec, 1, 60 * 60 * 24 * 30, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); // min free disk space used to check if the disk is full [50MB, 1GB] - if (cfgAddInt64(pCfg, "minDiskFreeSize", tsMinDiskFreeSize, TFS_MIN_DISK_FREE_SIZE, 1024 * 1024 * 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; - if (cfgAddBool(pCfg, "enableWhiteList", tsEnableWhiteList, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; + TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "minDiskFreeSize", tsMinDiskFreeSize, TFS_MIN_DISK_FREE_SIZE, 1024 * 1024 * 1024, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER)); + TAOS_CHECK_RETURN(cfgAddBool(pCfg, "enableWhiteList", tsEnableWhiteList, CFG_SCOPE_SERVER, CFG_DYN_SERVER)); // clang-format on // GRANT_CFG_ADD; - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t taosUpdateServerCfg(SConfig *pCfg) { @@ -799,7 +786,7 @@ static int32_t taosUpdateServerCfg(SConfig *pCfg) { pItem = cfgGetItem(tsCfg, "numOfCores"); if (pItem == NULL) { - return -1; + TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); } else { stype = pItem->stype; numOfCores = pItem->fval; @@ -917,7 +904,7 @@ static int32_t taosUpdateServerCfg(SConfig *pCfg) { pItem = cfgGetItem(tsCfg, "totalMemoryKB"); if (pItem == NULL) { - return -1; + TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); } else { stype = pItem->stype; totalMemoryKB = pItem->i64; @@ -931,7 +918,7 @@ static int32_t taosUpdateServerCfg(SConfig *pCfg) { pItem->stype = stype; } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } static void taosSetClientLogCfg(SConfig *pCfg) { @@ -969,19 +956,20 @@ static void taosSetServerLogCfg(SConfig *pCfg) { sndDebugFlag = cfgGetItem(pCfg, "sndDebugFlag")->i32; } -int32_t taosSetSlowLogScope(char *pScope) { - if (NULL == pScope || 0 == strlen(pScope)) { - return SLOW_LOG_TYPE_QUERY; +int32_t taosSetSlowLogScope(char *pScopeStr, int32_t *pScope) { + if (NULL == pScopeStr || 0 == strlen(pScopeStr)) { + *pScope = SLOW_LOG_TYPE_QUERY; + TAOS_RETURN(TSDB_CODE_SUCCESS); } int32_t slowScope = 0; char* scope = NULL; char *tmp = NULL; - while((scope = strsep(&pScope, "|")) != NULL){ + while((scope = strsep(&pScopeStr, "|")) != NULL){ taosMemoryFreeClear(tmp); tmp = taosStrdup(scope); - strtrim(tmp); + (void)strtrim(tmp); if (0 == strcasecmp(tmp, "all")) { slowScope |= SLOW_LOG_TYPE_ALL; continue; @@ -1008,42 +996,43 @@ int32_t taosSetSlowLogScope(char *pScope) { } taosMemoryFreeClear(tmp); - uError("Invalid slowLog scope value:%s", pScope); - terrno = TSDB_CODE_INVALID_CFG_VALUE; - return -1; + uError("Invalid slowLog scope value:%s", pScopeStr); + TAOS_RETURN(TSDB_CODE_INVALID_CFG_VALUE); } + *pScope = slowScope; taosMemoryFreeClear(tmp); - return slowScope; + TAOS_RETURN(TSDB_CODE_SUCCESS); } // for common configs static int32_t taosSetClientCfg(SConfig *pCfg) { tstrncpy(tsLocalFqdn, cfgGetItem(pCfg, "fqdn")->str, TSDB_FQDN_LEN); tsServerPort = (uint16_t)cfgGetItem(pCfg, "serverPort")->i32; - snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); char defaultFirstEp[TSDB_EP_LEN] = {0}; - snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); SEp firstEp = {0}; - taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp); - snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); - cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, true); + TAOS_CHECK_RETURN(taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp)); + (void)snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); + TAOS_CHECK_RETURN(cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, true)); SConfigItem *pSecondpItem = cfgGetItem(pCfg, "secondEp"); SEp secondEp = {0}; - taosGetFqdnPortFromEp(strlen(pSecondpItem->str) == 0 ? defaultFirstEp : pSecondpItem->str, &secondEp); - snprintf(tsSecond, sizeof(tsSecond), "%s:%u", secondEp.fqdn, secondEp.port); - cfgSetItem(pCfg, "secondEp", tsSecond, pSecondpItem->stype, true); + TAOS_CHECK_RETURN(taosGetFqdnPortFromEp(strlen(pSecondpItem->str) == 0 ? defaultFirstEp : pSecondpItem->str, &secondEp)); + (void)snprintf(tsSecond, sizeof(tsSecond), "%s:%u", secondEp.fqdn, secondEp.port); + TAOS_CHECK_RETURN(cfgSetItem(pCfg, "secondEp", tsSecond, pSecondpItem->stype, true)); tstrncpy(tsTempDir, cfgGetItem(pCfg, "tempDir")->str, PATH_MAX); - taosExpandDir(tsTempDir, tsTempDir, PATH_MAX); + TAOS_CHECK_RETURN(taosExpandDir(tsTempDir, tsTempDir, PATH_MAX)); tsTempSpace.reserved = (int64_t)(((double)cfgGetItem(pCfg, "minimalTmpDirGB")->fval) * 1024 * 1024 * 1024); if (taosMulMkDir(tsTempDir) != 0) { - uError("failed to create tempDir:%s since %s", tsTempDir, terrstr()); - return -1; + int32_t code = TAOS_SYSTEM_ERROR(errno); + uError("failed to create tempDir:%s since %s", tsTempDir, tstrerror(code)); + TAOS_RETURN(code); } tstrncpy(tsSmlAutoChildTableNameDelimiter, cfgGetItem(pCfg, "smlAutoChildTableNameDelimiter")->str, @@ -1088,28 +1077,41 @@ static int32_t taosSetClientCfg(SConfig *pCfg) { tsMultiResultFunctionStarReturnTags = cfgGetItem(pCfg, "multiResultFunctionStarReturnTags")->bval; tsMaxTsmaCalcDelay = cfgGetItem(pCfg, "maxTsmaCalcDelay")->i32; tsmaDataDeleteMark = cfgGetItem(pCfg, "tsmaDataDeleteMark")->i32; - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } -static void taosSetSystemCfg(SConfig *pCfg) { +static int32_t taosSetSystemCfg(SConfig *pCfg) { SConfigItem *pItem = cfgGetItem(pCfg, "timezone"); + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); - osSetTimezone(pItem->str); + TAOS_CHECK_RETURN(osSetTimezone(pItem->str)); uDebug("timezone format changed from %s to %s", pItem->str, tsTimezoneStr); - cfgSetItem(pCfg, "timezone", tsTimezoneStr, pItem->stype, true); + TAOS_CHECK_RETURN(cfgSetItem(pCfg, "timezone", tsTimezoneStr, pItem->stype, true)); + + pItem = cfgGetItem(pCfg, "locale"); + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + const char *locale = pItem->str; + + pItem = cfgGetItem(pCfg, "charset"); + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + const char *charset = pItem->str; - const char *locale = cfgGetItem(pCfg, "locale")->str; - const char *charset = cfgGetItem(pCfg, "charset")->str; taosSetSystemLocale(locale, charset); osSetSystemLocale(locale, charset); - bool enableCore = cfgGetItem(pCfg, "enableCoreFile")->bval; + pItem = cfgGetItem(pCfg, "enableCoreFile"); + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + bool enableCore = pItem->bval; taosSetCoreDump(enableCore); - tsAssert = cfgGetItem(pCfg, "assert")->bval; + pItem = cfgGetItem(pCfg, "assert"); + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + tsAssert = pItem->bval; // todo tsVersion = 30000000; + + TAOS_RETURN(TSDB_CODE_SUCCESS); } // for server configs @@ -1149,10 +1151,8 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tsSlowLogThresholdTest = cfgGetItem(pCfg, "slowLogThresholdTest")->i32; tsSlowLogThreshold = cfgGetItem(pCfg, "slowLogThreshold")->i32; tsSlowLogMaxLen = cfgGetItem(pCfg, "slowLogMaxLen")->i32; - int32_t scope = taosSetSlowLogScope(cfgGetItem(pCfg, "slowLogScope")->str); - if(scope < 0){ - return -1; - } + int32_t scope = 0; + TAOS_CHECK_RETURN(taosSetSlowLogScope(cfgGetItem(pCfg, "slowLogScope")->str, &scope)); tsSlowLogScope = scope; tsEnableMonitor = cfgGetItem(pCfg, "monitor")->bval; @@ -1248,7 +1248,7 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tsExperimental = cfgGetItem(pCfg, "experimental")->bval; // GRANT_CFG_GET; - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } #ifndef TD_ENTERPRISE @@ -1257,43 +1257,36 @@ static int32_t taosSetReleaseCfg(SConfig *pCfg) { return 0; } int32_t taosSetReleaseCfg(SConfig *pCfg); #endif -static void taosSetAllDebugFlag(SConfig *pCfg, int32_t flag); +static int32_t taosSetAllDebugFlag(SConfig *pCfg, int32_t flag); int32_t taosCreateLog(const char *logname, int32_t logFileNum, const char *cfgDir, const char **envCmd, const char *envFile, char *apolloUrl, SArray *pArgs, bool tsc) { - if (tsCfg == NULL) osDefaultInit(); + int32_t code = TSDB_CODE_SUCCESS; + + if (tsCfg == NULL) { + TAOS_CHECK_RETURN(osDefaultInit()); + } SConfig *pCfg = NULL; TAOS_CHECK_RETURN(cfgInit(&pCfg)); if (tsc) { tsLogEmbedded = 0; - if (taosAddClientLogCfg(pCfg) != 0) { - cfgCleanup(pCfg); - return -1; - } + TAOS_CHECK_GOTO(taosAddClientLogCfg(pCfg), NULL, _exit); } else { tsLogEmbedded = 1; - if (taosAddClientLogCfg(pCfg) != 0) { - cfgCleanup(pCfg); - return -1; - } - if (taosAddServerLogCfg(pCfg) != 0) { - cfgCleanup(pCfg); - return -1; - } + TAOS_CHECK_GOTO(taosAddClientLogCfg(pCfg), NULL, _exit); + TAOS_CHECK_GOTO(taosAddServerLogCfg(pCfg), NULL, _exit); } - if (taosLoadCfg(pCfg, envCmd, cfgDir, envFile, apolloUrl) != 0) { - printf("failed to load cfg since %s", terrstr()); - cfgCleanup(pCfg); - return -1; + if ((code = taosLoadCfg(pCfg, envCmd, cfgDir, envFile, apolloUrl)) != TSDB_CODE_SUCCESS) { + printf("failed to load cfg since %s", tstrerror(code)); + goto _exit; } - if (cfgLoadFromArray(pCfg, pArgs) != 0) { - printf("failed to load cfg from array since %s", terrstr()); - cfgCleanup(pCfg); - return -1; + if ((code = cfgLoadFromArray(pCfg, pArgs)) != TSDB_CODE_SUCCESS) { + printf("failed to load cfg from array since %s", tstrerror(code)); + goto _exit; } if (tsc) { @@ -1303,26 +1296,30 @@ int32_t taosCreateLog(const char *logname, int32_t logFileNum, const char *cfgDi taosSetServerLogCfg(pCfg); } - taosSetAllDebugFlag(pCfg, cfgGetItem(pCfg, "debugFlag")->i32); + SConfigItem *pDebugItem = cfgGetItem(pCfg, "debugFlag"); + if (NULL == pDebugItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); - if (taosMulModeMkDir(tsLogDir, 0777, true) != 0) { - printf("failed to create dir:%s since %s", tsLogDir, terrstr()); - cfgCleanup(pCfg); - return -1; + TAOS_CHECK_RETURN(taosSetAllDebugFlag(pCfg, pDebugItem->i32)); + + if ((code = taosMulModeMkDir(tsLogDir, 0777, true)) != TSDB_CODE_SUCCESS) { + printf("failed to create dir:%s since %s", tsLogDir, tstrerror(code)); + goto _exit; } - if (taosInitLog(logname, logFileNum) != 0) { + if ((code = taosInitLog(logname, logFileNum)) != 0) { printf("failed to init log file since %s", terrstr()); - cfgCleanup(pCfg); - return -1; + goto _exit; } +_exit: cfgCleanup(pCfg); - return 0; + TAOS_RETURN(code); } int32_t taosReadDataFolder(const char *cfgDir, const char **envCmd, const char *envFile, char *apolloUrl, SArray *pArgs) { + int32_t code = TSDB_CODE_SUCCESS; + if (tsCfg == NULL) osDefaultInit(); SConfig *pCfg = NULL; @@ -1331,107 +1328,105 @@ int32_t taosReadDataFolder(const char *cfgDir, const char **envCmd, const char * if (cfgAddDir(pCfg, "dataDir", tsDataDir, CFG_SCOPE_SERVER, CFG_DYN_NONE) != 0) return -1; if (cfgAddInt32(pCfg, "dDebugFlag", dDebugFlag, 0, 255, CFG_SCOPE_SERVER, CFG_DYN_SERVER) != 0) return -1; - if (taosLoadCfg(pCfg, envCmd, cfgDir, envFile, apolloUrl) != 0) { + if ((code = taosLoadCfg(pCfg, envCmd, cfgDir, envFile, apolloUrl)) != 0) { printf("failed to load cfg since %s", terrstr()); - cfgCleanup(pCfg); - return -1; + goto _exit; } - if (cfgLoadFromArray(pCfg, pArgs) != 0) { + if ((code = cfgLoadFromArray(pCfg, pArgs)) != 0) { printf("failed to load cfg from array since %s", terrstr()); - cfgCleanup(pCfg); - return -1; + goto _exit; } - if (taosSetTfsCfg(pCfg) != 0) { - cfgCleanup(pCfg); - return -1; - } + TAOS_CHECK_GOTO(taosSetTfsCfg(pCfg), NULL, _exit); dDebugFlag = cfgGetItem(pCfg, "dDebugFlag")->i32; +_exit: cfgCleanup(pCfg); - return 0; + TAOS_RETURN(code); } static int32_t taosCheckGlobalCfg() { uint32_t ipv4 = 0; int32_t code = taosGetIpv4FromFqdn(tsLocalFqdn, &ipv4); if (code) { - terrno = TSDB_CODE_RPC_FQDN_ERROR; - uError("failed to get ip from fqdn:%s since %s, dnode can not be initialized", tsLocalFqdn, terrstr()); - return -1; + uError("failed to get ip from fqdn:%s since %s, dnode can not be initialized", tsLocalFqdn, tstrerror(code)); + TAOS_RETURN(TSDB_CODE_RPC_FQDN_ERROR); } if (tsServerPort <= 0) { uError("invalid server port:%u, dnode can not be initialized", tsServerPort); - return -1; + TAOS_RETURN(TSDB_CODE_RPC_FQDN_ERROR); } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t cfgInitWrapper(SConfig **pCfg) { if (*pCfg == NULL) { TAOS_CHECK_RETURN(cfgInit(pCfg)); } - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } int32_t taosInitCfg(const char *cfgDir, const char **envCmd, const char *envFile, char *apolloUrl, SArray *pArgs, bool tsc) { - if (tsCfg != NULL) return 0; + if (tsCfg != NULL) TAOS_RETURN(TSDB_CODE_SUCCESS); - int32_t code = cfgInitWrapper(&tsCfg); + TAOS_CHECK_RETURN(cfgInitWrapper(&tsCfg)); if (tsc) { - if ((code = taosAddClientCfg(tsCfg)) != 0) return code; - if ((code = taosAddClientLogCfg(tsCfg)) != 0) return code; + TAOS_CHECK_RETURN(taosAddClientCfg(tsCfg)); + TAOS_CHECK_RETURN(taosAddClientLogCfg(tsCfg)); } else { - if ((code = taosAddClientCfg(tsCfg)) != 0) return code; - if ((code = taosAddServerCfg(tsCfg)) != 0) return code; - if ((code = taosAddClientLogCfg(tsCfg)) != 0) return code; - if ((code = taosAddServerLogCfg(tsCfg)) != 0) return code; + TAOS_CHECK_RETURN(taosAddClientCfg(tsCfg)); + TAOS_CHECK_RETURN(taosAddServerCfg(tsCfg)); + TAOS_CHECK_RETURN(taosAddClientLogCfg(tsCfg)); + TAOS_CHECK_RETURN(taosAddServerLogCfg(tsCfg)); } - code = taosAddSystemCfg(tsCfg); + TAOS_CHECK_RETURN(taosAddSystemCfg(tsCfg)); + int32_t code = TSDB_CODE_SUCCESS; if ((code = taosLoadCfg(tsCfg, envCmd, cfgDir, envFile, apolloUrl)) != 0) { uError("failed to load cfg since %s", tstrerror(code)); cfgCleanup(tsCfg); tsCfg = NULL; - return code; + TAOS_RETURN(code); } if ((code = cfgLoadFromArray(tsCfg, pArgs)) != 0) { uError("failed to load cfg from array since %s", tstrerror(code)); cfgCleanup(tsCfg); tsCfg = NULL; - return code; + TAOS_RETURN(code); } if (tsc) { - if ((code = taosSetClientCfg(tsCfg)) != 0) return code; + TAOS_CHECK_RETURN(taosSetClientCfg(tsCfg)); } else { - if ((code = taosSetClientCfg(tsCfg)) != 0) return code; - if ((code = taosUpdateServerCfg(tsCfg)) != 0) return code; - if ((code = taosSetServerCfg(tsCfg)) != 0) return code; - if ((code = taosSetReleaseCfg(tsCfg)) != 0) return code; - if ((code = taosSetTfsCfg(tsCfg)) != 0) return code; - if ((code = taosSetS3Cfg(tsCfg)) != 0) return code; + TAOS_CHECK_RETURN(taosSetClientCfg(tsCfg)); + TAOS_CHECK_RETURN(taosUpdateServerCfg(tsCfg)); + TAOS_CHECK_RETURN(taosSetServerCfg(tsCfg)); + TAOS_CHECK_RETURN(taosSetReleaseCfg(tsCfg)); + TAOS_CHECK_RETURN(taosSetTfsCfg(tsCfg)); + TAOS_CHECK_RETURN(taosSetS3Cfg(tsCfg)); } - taosSetSystemCfg(tsCfg); + TAOS_CHECK_RETURN(taosSetSystemCfg(tsCfg)); + TAOS_CHECK_RETURN(taosSetFileHandlesLimit()); - if ((code = taosSetFileHandlesLimit()) != 0) return code; - - taosSetAllDebugFlag(tsCfg, cfgGetItem(tsCfg, "debugFlag")->i32); + SConfigItem *pItem = cfgGetItem(tsCfg, "debugFlag"); + if (NULL == pItem) { + uError("debugFlag not found in cfg"); + TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + } + TAOS_CHECK_RETURN(taosSetAllDebugFlag(tsCfg, pItem->i32)); cfgDumpCfg(tsCfg, tsc, false); - if ((code = taosCheckGlobalCfg()) != 0) { - return code; - } + TAOS_CHECK_RETURN(taosCheckGlobalCfg()); - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } void taosCleanupCfg() { @@ -1447,18 +1442,18 @@ typedef struct { } OptionNameAndVar; static int32_t taosCfgSetOption(OptionNameAndVar *pOptions, int32_t optionSize, SConfigItem *pItem, bool isDebugflag) { - terrno = TSDB_CODE_INVALID_CFG; + int32_t code = TSDB_CODE_CFG_NOT_FOUND; char *name = pItem->name; for (int32_t d = 0; d < optionSize; ++d) { const char *optName = pOptions[d].optionName; if (strcasecmp(name, optName) != 0) continue; + code = TSDB_CODE_SUCCESS; switch (pItem->dtype) { case CFG_DTYPE_BOOL: { int32_t flag = pItem->i32; bool *pVar = pOptions[d].optionVar; uInfo("%s set from %d to %d", optName, *pVar, flag); *pVar = flag; - terrno = TSDB_CODE_SUCCESS; } break; case CFG_DTYPE_INT32: { int32_t flag = pItem->i32; @@ -1467,16 +1462,14 @@ static int32_t taosCfgSetOption(OptionNameAndVar *pOptions, int32_t optionSize, *pVar = flag; if (isDebugflag) { - taosSetDebugFlag(pOptions[d].optionVar, optName, flag); + TAOS_CHECK_RETURN(taosSetDebugFlag(pOptions[d].optionVar, optName, flag)); } - terrno = TSDB_CODE_SUCCESS; } break; case CFG_DTYPE_INT64: { int64_t flag = pItem->i64; int64_t *pVar = pOptions[d].optionVar; uInfo("%s set from %" PRId64 " to %" PRId64, optName, *pVar, flag); *pVar = flag; - terrno = TSDB_CODE_SUCCESS; } break; case CFG_DTYPE_FLOAT: case CFG_DTYPE_DOUBLE: { @@ -1484,27 +1477,26 @@ static int32_t taosCfgSetOption(OptionNameAndVar *pOptions, int32_t optionSize, float *pVar = pOptions[d].optionVar; uInfo("%s set from %f to %f", optName, *pVar, flag); *pVar = flag; - terrno = TSDB_CODE_SUCCESS; } break; default: - terrno = TSDB_CODE_INVALID_CFG; + code = TSDB_CODE_INVALID_CFG; break; } break; } - return terrno == TSDB_CODE_SUCCESS ? 0 : -1; + TAOS_RETURN(code); } static int32_t taosCfgDynamicOptionsForServer(SConfig *pCfg, const char *name) { - terrno = TSDB_CODE_SUCCESS; + int32_t code = TSDB_CODE_SUCCESS; if (strcasecmp(name, "resetlog") == 0) { // trigger, no item in cfg taosResetLog(); cfgDumpCfg(tsCfg, 0, false); - return 0; + TAOS_RETURN(TSDB_CODE_SUCCESS); } cfgLock(pCfg); @@ -1512,33 +1504,27 @@ static int32_t taosCfgDynamicOptionsForServer(SConfig *pCfg, const char *name) { SConfigItem *pItem = cfgGetItem(pCfg, name); if (!pItem || (pItem->dynScope & CFG_DYN_SERVER) == 0) { uError("failed to config:%s, not support", name); - terrno = TSDB_CODE_INVALID_CFG; - - cfgUnLock(pCfg); - return -1; + code = TSDB_CODE_INVALID_CFG; + goto _exit; } if (strncasecmp(name, "debugFlag", 9) == 0) { - taosSetAllDebugFlag(pCfg, pItem->i32); - cfgUnLock(pCfg); - return 0; + code = taosSetAllDebugFlag(pCfg, pItem->i32); + goto _exit; } if (strcasecmp("slowLogScope", name) == 0) { - int32_t scope = taosSetSlowLogScope(pItem->str); - if(scope < 0){ - cfgUnLock(pCfg); - return -1; - } + int32_t scope = 0; + TAOS_CHECK_GOTO(taosSetSlowLogScope(pItem->str, &scope), NULL, _exit); tsSlowLogScope = scope; - cfgUnLock(pCfg); - return 0; + code = TSDB_CODE_SUCCESS; + goto _exit; } if (strcasecmp("slowLogExceptDb", name) == 0) { tstrncpy(tsSlowLogExceptDb, pItem->str, TSDB_DB_NAME_LEN); - cfgUnLock(pCfg); - return 0; + code = TSDB_CODE_SUCCESS; + goto _exit; } { // 'bool/int32_t/int64_t/float/double' variables with general modification function @@ -1593,39 +1579,39 @@ static int32_t taosCfgDynamicOptionsForServer(SConfig *pCfg, const char *name) { {"experimental", &tsExperimental}, {"maxTsmaNum", &tsMaxTsmaNum}}; - if (taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true) != 0) { - taosCfgSetOption(options, tListLen(options), pItem, false); + if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) { + code = taosCfgSetOption(options, tListLen(options), pItem, false); } } +_exit: cfgUnLock(pCfg); - return terrno == TSDB_CODE_SUCCESS ? 0 : -1; + TAOS_RETURN(code); } static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { - terrno = TSDB_CODE_SUCCESS; + int32_t code = TSDB_CODE_SUCCESS; + int32_t lino = 0; cfgLock(pCfg); SConfigItem *pItem = cfgGetItem(pCfg, name); if ((pItem == NULL) || (pItem->dynScope & CFG_DYN_CLIENT) == 0) { uError("failed to config:%s, not support", name); - terrno = TSDB_CODE_INVALID_CFG; - - cfgUnLock(pCfg); - return -1; + code = TSDB_CODE_INVALID_CFG; + goto _out; } bool matched = false; int32_t len = strlen(name); char lowcaseName[CFG_NAME_MAX_LEN + 1] = {0}; - strntolower(lowcaseName, name, TMIN(CFG_NAME_MAX_LEN, len)); + (void)strntolower(lowcaseName, name, TMIN(CFG_NAME_MAX_LEN, len)); switch (lowcaseName[0]) { case 'd': { if (strcasecmp("debugFlag", name) == 0) { - taosSetAllDebugFlag(pCfg, pItem->i32); + code = taosSetAllDebugFlag(pCfg, pItem->i32); matched = true; } break; @@ -1641,35 +1627,55 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { } case 'f': { if (strcasecmp("fqdn", name) == 0) { - tstrncpy(tsLocalFqdn, cfgGetItem(pCfg, "fqdn")->str, TSDB_FQDN_LEN); - tsServerPort = (uint16_t)cfgGetItem(pCfg, "serverPort")->i32; - snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); + SConfigItem* pFqdnItem = cfgGetItem(pCfg, "fqdn"); + SConfigItem* pServerPortItem = cfgGetItem(pCfg, "serverPort"); + SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); + if (pFqdnItem == NULL || pServerPortItem == NULL || pFirstEpItem == NULL) { + uError("failed to get fqdn or serverPort or firstEp from cfg"); + code = TSDB_CODE_CFG_NOT_FOUND; + goto _out; + } + + tstrncpy(tsLocalFqdn, pFqdnItem->str, TSDB_FQDN_LEN); + tsServerPort = (uint16_t)pServerPortItem->i32; + (void)snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); char defaultFirstEp[TSDB_EP_LEN] = {0}; - snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); - SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); SEp firstEp = {0}; - taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp); - snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); + TAOS_CHECK_GOTO( + taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp), &lino, + _out); + (void)snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); - cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false); + TAOS_CHECK_GOTO(cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false), &lino, _out); uInfo("localEp set to '%s', tsFirst set to '%s'", tsLocalEp, tsFirst); matched = true; } else if (strcasecmp("firstEp", name) == 0) { - tstrncpy(tsLocalFqdn, cfgGetItem(pCfg, "fqdn")->str, TSDB_FQDN_LEN); - tsServerPort = (uint16_t)cfgGetItem(pCfg, "serverPort")->i32; - snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); + SConfigItem *pFqdnItem = cfgGetItem(pCfg, "fqdn"); + SConfigItem *pServerPortItem = cfgGetItem(pCfg, "serverPort"); + SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); + if (pFqdnItem == NULL || pServerPortItem == NULL || pFirstEpItem == NULL) { + uError("failed to get fqdn or serverPort or firstEp from cfg"); + code = TSDB_CODE_CFG_NOT_FOUND; + goto _out; + } + + tstrncpy(tsLocalFqdn, pFqdnItem->str, TSDB_FQDN_LEN); + tsServerPort = (uint16_t)pServerPortItem->i32; + (void)snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); char defaultFirstEp[TSDB_EP_LEN] = {0}; - snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); - SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); - SEp firstEp = {0}; - taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp); - snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); + SEp firstEp = {0}; + TAOS_CHECK_GOTO( + taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp), &lino, + _out); + (void)snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); - cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false); + TAOS_CHECK_GOTO(cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false), &lino, _out); uInfo("localEp set to '%s', tsFirst set to '%s'", tsLocalEp, tsFirst); matched = true; } @@ -1677,8 +1683,16 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { } case 'l': { if (strcasecmp("locale", name) == 0) { - const char *locale = cfgGetItem(pCfg, "locale")->str; - const char *charset = cfgGetItem(pCfg, "charset")->str; + SConfigItem* pLocaleItem = cfgGetItem(pCfg, "locale"); + SConfigItem* pCharsetItem = cfgGetItem(pCfg, "charset"); + if (pLocaleItem == NULL || pCharsetItem == NULL) { + uError("failed to get locale or charset from cfg"); + code = TSDB_CODE_CFG_NOT_FOUND; + goto _out; + } + + const char *locale = pLocaleItem->str; + const char *charset = pCharsetItem->str; taosSetSystemLocale(locale, charset); osSetSystemLocale(locale, charset); uInfo("locale set to '%s', charset set to '%s'", locale, charset); @@ -1686,7 +1700,7 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { } else if (strcasecmp("logDir", name) == 0) { uInfo("%s set from '%s' to '%s'", name, tsLogDir, pItem->str); tstrncpy(tsLogDir, pItem->str, PATH_MAX); - taosExpandDir(tsLogDir, tsLogDir, PATH_MAX); + TAOS_CHECK_GOTO(taosExpandDir(tsLogDir, tsLogDir, PATH_MAX), &lino, _out); matched = true; } break; @@ -1710,9 +1724,9 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { case 's': { if (strcasecmp("secondEp", name) == 0) { SEp secondEp = {0}; - taosGetFqdnPortFromEp(strlen(pItem->str) == 0 ? tsFirst : pItem->str, &secondEp); - snprintf(tsSecond, sizeof(tsSecond), "%s:%u", secondEp.fqdn, secondEp.port); - cfgSetItem(pCfg, "secondEp", tsSecond, pItem->stype, false); + TAOS_CHECK_GOTO(taosGetFqdnPortFromEp(strlen(pItem->str) == 0 ? tsFirst : pItem->str, &secondEp), &lino, _out); + (void)snprintf(tsSecond, sizeof(tsSecond), "%s:%u", secondEp.fqdn, secondEp.port); + TAOS_CHECK_GOTO(cfgSetItem(pCfg, "secondEp", tsSecond, pItem->stype, false), &lino, _out); uInfo("%s set to %s", name, tsSecond); matched = true; } else if (strcasecmp("smlChildTableName", name) == 0) { @@ -1734,17 +1748,25 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { } else if (strcasecmp("serverPort", name) == 0) { tstrncpy(tsLocalFqdn, cfgGetItem(pCfg, "fqdn")->str, TSDB_FQDN_LEN); tsServerPort = (uint16_t)cfgGetItem(pCfg, "serverPort")->i32; - snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(tsLocalEp, sizeof(tsLocalEp), "%s:%u", tsLocalFqdn, tsServerPort); char defaultFirstEp[TSDB_EP_LEN] = {0}; - snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); + (void)snprintf(defaultFirstEp, TSDB_EP_LEN, "%s:%u", tsLocalFqdn, tsServerPort); SConfigItem *pFirstEpItem = cfgGetItem(pCfg, "firstEp"); - SEp firstEp = {0}; - taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp); - snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); + if (pFirstEpItem == NULL) { + uError("failed to get firstEp from cfg"); + code = TSDB_CODE_CFG_NOT_FOUND; + goto _out; + } - cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false); + SEp firstEp = {0}; + TAOS_CHECK_GOTO( + taosGetFqdnPortFromEp(strlen(pFirstEpItem->str) == 0 ? defaultFirstEp : pFirstEpItem->str, &firstEp), &lino, + _out); + (void)snprintf(tsFirst, sizeof(tsFirst), "%s:%u", firstEp.fqdn, firstEp.port); + + TAOS_CHECK_GOTO(cfgSetItem(pCfg, "firstEp", tsFirst, pFirstEpItem->stype, false), &lino, _out); uInfo("localEp set to '%s', tsFirst set to '%s'", tsLocalEp, tsFirst); matched = true; } @@ -1752,26 +1774,26 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { } case 't': { if (strcasecmp("timezone", name) == 0) { - osSetTimezone(pItem->str); + TAOS_CHECK_GOTO(osSetTimezone(pItem->str), &lino, _out); uInfo("%s set from %s to %s", name, tsTimezoneStr, pItem->str); - cfgSetItem(pCfg, "timezone", tsTimezoneStr, pItem->stype, false); + TAOS_CHECK_GOTO(cfgSetItem(pCfg, "timezone", tsTimezoneStr, pItem->stype, false), &lino, _out); matched = true; } else if (strcasecmp("tempDir", name) == 0) { uInfo("%s set from %s to %s", name, tsTempDir, pItem->str); tstrncpy(tsTempDir, pItem->str, PATH_MAX); - taosExpandDir(tsTempDir, tsTempDir, PATH_MAX); + TAOS_CHECK_GOTO(taosExpandDir(tsTempDir, tsTempDir, PATH_MAX), &lino, _out); if (taosMulMkDir(tsTempDir) != 0) { - uError("failed to create tempDir:%s since %s", tsTempDir, terrstr()); - cfgUnLock(pCfg); - return -1; + code = TAOS_SYSTEM_ERROR(errno); + uError("failed to create tempDir:%s since %s", tsTempDir, tstrerror(code)); + goto _out; } matched = true; } break; } default: - terrno = TSDB_CODE_CFG_NOT_FOUND; + code = TSDB_CODE_CFG_NOT_FOUND; break; } @@ -1813,14 +1835,18 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) { {"maxTsmaCalcDelay", &tsMaxTsmaCalcDelay}, {"tsmaDataDeleteMark", &tsmaDataDeleteMark}}; - if (taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true) != 0) { - taosCfgSetOption(options, tListLen(options), pItem, false); + if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) { + code = taosCfgSetOption(options, tListLen(options), pItem, false); } } _out: + if (TSDB_CODE_SUCCESS != code) { + uError("failed to set option:%s, lino:%d, since:%s", name, lino, tstrerror(code)); + } + cfgUnLock(pCfg); - return terrno == TSDB_CODE_SUCCESS ? 0 : -1; + TAOS_RETURN(code); } int32_t taosCfgDynamicOptions(SConfig *pCfg, const char *name, bool forServer) { @@ -1831,14 +1857,15 @@ int32_t taosCfgDynamicOptions(SConfig *pCfg, const char *name, bool forServer) { } } -void taosSetDebugFlag(int32_t *pFlagPtr, const char *flagName, int32_t flagVal) { +int32_t taosSetDebugFlag(int32_t *pFlagPtr, const char *flagName, int32_t flagVal) { SConfigItem *pItem = cfgGetItem(tsCfg, flagName); - if (pItem != NULL) { - pItem->i32 = flagVal; - } + if (!pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); + + pItem->i32 = flagVal; if (pFlagPtr != NULL) { *pFlagPtr = flagVal; } + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int taosLogVarComp(void const *lp, void const *rp) { @@ -1847,58 +1874,55 @@ static int taosLogVarComp(void const *lp, void const *rp) { return strcasecmp(lpVar->name, rpVar->name); } -static void taosCheckAndSetDebugFlag(int32_t *pFlagPtr, char *name, int32_t flag, SArray *noNeedToSetVars) { +static int32_t taosCheckAndSetDebugFlag(int32_t *pFlagPtr, char *name, int32_t flag, SArray *noNeedToSetVars) { if (noNeedToSetVars != NULL && taosArraySearch(noNeedToSetVars, name, taosLogVarComp, TD_EQ) != NULL) { - return; + TAOS_RETURN(TSDB_CODE_SUCCESS); } - taosSetDebugFlag(pFlagPtr, name, flag); + return taosSetDebugFlag(pFlagPtr, name, flag); } -void taosSetGlobalDebugFlag(int32_t flag) { taosSetAllDebugFlag(tsCfg, flag); } +int32_t taosSetGlobalDebugFlag(int32_t flag) { return taosSetAllDebugFlag(tsCfg, flag); } // NOTE: set all command does not change the tmrDebugFlag -static void taosSetAllDebugFlag(SConfig *pCfg, int32_t flag) { - if (flag <= 0) { - return; - } +static int32_t taosSetAllDebugFlag(SConfig *pCfg, int32_t flag) { + if (flag < 0) TAOS_RETURN(TSDB_CODE_INVALID_PARA); + if (flag == 0) TAOS_RETURN(TSDB_CODE_SUCCESS); // just ignore SArray *noNeedToSetVars = NULL; SConfigItem *pItem = cfgGetItem(pCfg, "debugFlag"); - if (pItem != NULL) { - pItem->i32 = flag; - noNeedToSetVars = pItem->array; - } + if (NULL == pItem) TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); - taosCheckAndSetDebugFlag(&simDebugFlag, "simDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&uDebugFlag, "uDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&rpcDebugFlag, "rpcDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&qDebugFlag, "qDebugFlag", flag, noNeedToSetVars); + pItem->i32 = flag; + noNeedToSetVars = pItem->array; - taosCheckAndSetDebugFlag(&jniDebugFlag, "jniDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&cDebugFlag, "cDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&simDebugFlag, "simDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&uDebugFlag, "uDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&rpcDebugFlag, "rpcDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&qDebugFlag, "qDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&dDebugFlag, "dDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&vDebugFlag, "vDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&mDebugFlag, "mDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&wDebugFlag, "wDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&sDebugFlag, "sDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&tsdbDebugFlag, "tsdbDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&tqDebugFlag, "tqDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&fsDebugFlag, "fsDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&udfDebugFlag, "udfDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&smaDebugFlag, "smaDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&idxDebugFlag, "idxDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&tdbDebugFlag, "tdbDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&metaDebugFlag, "metaDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&stDebugFlag, "stDebugFlag", flag, noNeedToSetVars); - taosCheckAndSetDebugFlag(&sndDebugFlag, "sndDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&jniDebugFlag, "jniDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&cDebugFlag, "cDebugFlag", flag, noNeedToSetVars); + + (void)taosCheckAndSetDebugFlag(&dDebugFlag, "dDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&vDebugFlag, "vDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&mDebugFlag, "mDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&wDebugFlag, "wDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&sDebugFlag, "sDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&tsdbDebugFlag, "tsdbDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&tqDebugFlag, "tqDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&fsDebugFlag, "fsDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&udfDebugFlag, "udfDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&smaDebugFlag, "smaDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&idxDebugFlag, "idxDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&tdbDebugFlag, "tdbDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&metaDebugFlag, "metaDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&stDebugFlag, "stDebugFlag", flag, noNeedToSetVars); + (void)taosCheckAndSetDebugFlag(&sndDebugFlag, "sndDebugFlag", flag, noNeedToSetVars); taosArrayClear(noNeedToSetVars); // reset array uInfo("all debug flag are set to %d", flag); - if (terrno == TSDB_CODE_CFG_NOT_FOUND) { - terrno = TSDB_CODE_SUCCESS; // ignore not exist - } + TAOS_RETURN(TSDB_CODE_SUCCESS); } int8_t taosGranted(int8_t type) { diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 7107bb7096..c17b8ef526 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -374,13 +374,13 @@ static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) SQuerySubDesc sDesc = {0}; if (tDecodeI64(pDecoder, &sDesc.tid) < 0) return -1; if (tDecodeCStrTo(pDecoder, sDesc.status) < 0) return -1; - taosArrayPush(desc.subDesc, &sDesc); + if (!taosArrayPush(desc.subDesc, &sDesc)) return -1; } } ASSERT(desc.subPlanNum == taosArrayGetSize(desc.subDesc)); - taosArrayPush(pReq->query->queryDesc, &desc); + if (!taosArrayPush(pReq->query->queryDesc, &desc)) return -1; } } } @@ -395,7 +395,11 @@ static int32_t tDeserializeSClientHbReq(SDecoder *pDecoder, SClientHbReq *pReq) for (int32_t i = 0; i < kvNum; i++) { SKv kv = {0}; if (tDecodeSKv(pDecoder, &kv) < 0) return -1; - taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv)); + int32_t code = taosHashPut(pReq->info, &kv.key, sizeof(kv.key), &kv, sizeof(kv)); + if (code) { + terrno = code; + return -1; + } } return 0; @@ -458,7 +462,7 @@ static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) for (int32_t i = 0; i < pQnodeNum; ++i) { SQueryNodeLoad load = {0}; if (tDecodeSQueryNodeLoad(pDecoder, &load) < 0) return -1; - taosArrayPush(pRsp->query->pQnodeList, &load); + if (!taosArrayPush(pRsp->query->pQnodeList, &load)) return -1; } } } @@ -469,8 +473,8 @@ static int32_t tDeserializeSClientHbRsp(SDecoder *pDecoder, SClientHbRsp *pRsp) if (pRsp->info == NULL) return -1; for (int32_t i = 0; i < kvNum; i++) { SKv kv = {0}; - tDecodeSKv(pDecoder, &kv); - taosArrayPush(pRsp->info, &kv); + if (tDecodeSKv(pDecoder, &kv)) return -1; + if (!taosArrayPush(pRsp->info, &kv)) return -1; } return 0; @@ -513,8 +517,8 @@ int32_t tDeserializeSClientHbBatchReq(void *buf, int32_t bufLen, SClientHbBatchR } for (int32_t i = 0; i < reqNum; i++) { SClientHbReq req = {0}; - tDeserializeSClientHbReq(&decoder, &req); - taosArrayPush(pBatchReq->reqs, &req); + if (tDeserializeSClientHbReq(&decoder, &req) < 0) return -1; + if (!taosArrayPush(pBatchReq->reqs, &req)) return -1; } if (!tDecodeIsEnd(&decoder)) { @@ -561,12 +565,12 @@ int32_t tDeserializeSClientHbBatchRsp(void *buf, int32_t bufLen, SClientHbBatchR int32_t rspNum = 0; if (tDecodeI32(&decoder, &rspNum) < 0) return -1; if (pBatchRsp->rsps == NULL) { - pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp)); + if ((pBatchRsp->rsps = taosArrayInit(rspNum, sizeof(SClientHbRsp))) == NULL) return -1; } for (int32_t i = 0; i < rspNum; i++) { SClientHbRsp rsp = {0}; - tDeserializeSClientHbRsp(&decoder, &rsp); - taosArrayPush(pBatchRsp->rsps, &rsp); + if (tDeserializeSClientHbRsp(&decoder, &rsp) < 0) return -1; + if (taosArrayPush(pBatchRsp->rsps, &rsp) == NULL) return -1; } if (!tDecodeIsEnd(&decoder)) { @@ -673,13 +677,9 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR if (tDecodeI32(&decoder, &pReq->ast1Len) < 0) return -1; if (tDecodeI32(&decoder, &pReq->ast2Len) < 0) return -1; - pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions)); - pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField)); - pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN); - if (pReq->pColumns == NULL || pReq->pTags == NULL || pReq->pFuncs == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; - } + if ((pReq->pColumns = taosArrayInit(pReq->numOfColumns, sizeof(SFieldWithOptions))) == NULL) return -1; + if ((pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField))) == NULL) return -1; + if ((pReq->pFuncs = taosArrayInit(pReq->numOfFuncs, TSDB_FUNC_NAME_LEN)) == NULL) return -1; for (int32_t i = 0; i < pReq->numOfColumns; ++i) { SFieldWithOptions field = {0}; @@ -689,7 +689,6 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (tDecodeU32(&decoder, &field.compress) < 0) return -1; if (taosArrayPush(pReq->pColumns, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -701,7 +700,6 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR if (tDecodeI32(&decoder, &field.bytes) < 0) return -1; if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (taosArrayPush(pReq->pTags, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -710,7 +708,6 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR char pFunc[TSDB_FUNC_NAME_LEN] = {0}; if (tDecodeCStrTo(&decoder, pFunc) < 0) return -1; if (taosArrayPush(pReq->pFuncs, pFunc) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -844,21 +841,19 @@ int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq if (tDecodeI32(&decoder, &pReq->numOfFields) < 0) return -1; pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SField)); if (pReq->pFields == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } for (int32_t i = 0; i < pReq->numOfFields; ++i) { if (pReq->alterType == TSDB_ALTER_TABLE_ADD_COLUMN_WITH_COMPRESS_OPTION) { taosArrayDestroy(pReq->pFields); - pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions)); + if ((pReq->pFields = taosArrayInit(pReq->numOfFields, sizeof(SFieldWithOptions))) == NULL) return -1; SFieldWithOptions field = {0}; if (tDecodeI8(&decoder, &field.type) < 0) return -1; if (tDecodeI32(&decoder, &field.bytes) < 0) return -1; if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (tDecodeU32(&decoder, &field.compress) < 0) return -1; if (taosArrayPush(pReq->pFields, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } else { @@ -867,7 +862,6 @@ int32_t tDeserializeSMAlterStbReq(void *buf, int32_t bufLen, SMAlterStbReq *pReq if (tDecodeI32(&decoder, &field.bytes) < 0) return -1; if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (taosArrayPush(pReq->pFields, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -1020,7 +1014,6 @@ int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pR if (numOfVgVer > 0) { pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer)); if (pReq->pVgroupVerList == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -1029,7 +1022,6 @@ int32_t tDeserializeSMCreateSmaReq(void *buf, int32_t bufLen, SMCreateSmaReq *pR if (tDecodeI32(&decoder, &v.vgId) < 0) return -1; if (tDecodeI64(&decoder, &v.ver) < 0) return -1; if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -1224,7 +1216,7 @@ int32_t tDeserializeSNotifyReq(void *buf, int32_t bufLen, SNotifyReq *pReq) { if (nVgroup > 0) { pReq->pVloads = taosArrayInit_s(sizeof(SVnodeLoadLite), nVgroup); if (!pReq->pVloads) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } for (int32_t i = 0; i < nVgroup; ++i) { @@ -1381,7 +1373,6 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI32(&decoder, &vlen) < 0) return -1; pReq->pVloads = taosArrayInit(vlen, sizeof(SVnodeLoad)); if (pReq->pVloads == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -1404,7 +1395,6 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI64(&decoder, &vload.roleTimeMs) < 0) return -1; if (tDecodeI64(&decoder, &vload.startTimeMs) < 0) return -1; if (taosArrayPush(pReq->pVloads, &vload) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -1519,7 +1509,6 @@ int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) { if (tDecodeI32(&decoder, &dlen) < 0) return -1; pRsp->pDnodeEps = taosArrayInit(dlen, sizeof(SDnodeEp)); if (pRsp->pDnodeEps == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -1530,7 +1519,6 @@ int32_t tDeserializeSStatusRsp(void *buf, int32_t bufLen, SStatusRsp *pRsp) { if (tDecodeCStrTo(&decoder, dnodeEp.ep.fqdn) < 0) return -1; if (tDecodeU16(&decoder, &dnodeEp.ep.port) < 0) return -1; if (taosArrayPush(pRsp->pDnodeEps, &dnodeEp) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -1659,7 +1647,9 @@ SIpWhiteList *cloneIpWhiteList(SIpWhiteList *pIpWhiteList) { int32_t sz = sizeof(SIpWhiteList) + pIpWhiteList->num * sizeof(SIpV4Range); SIpWhiteList *pNew = taosMemoryCalloc(1, sz); - memcpy(pNew, pIpWhiteList, sz); + if (pNew) { + memcpy(pNew, pIpWhiteList, sz); + } return pNew; } @@ -1754,14 +1744,14 @@ int32_t tDeserializeSUpdateIpWhite(void *buf, int32_t bufLen, SUpdateIpWhite *pR if (tDecodeI64(&decoder, &pReq->ver) < 0) return -1; if (tDecodeI32(&decoder, &pReq->numOfUser) < 0) return -1; - pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser); + if ((pReq->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) return -1; for (int i = 0; i < pReq->numOfUser; i++) { SUpdateUserIpWhite *pUserWhite = &pReq->pUserIpWhite[i]; if (tDecodeI64(&decoder, &pUserWhite->ver) < 0) return -1; if (tDecodeCStrTo(&decoder, pUserWhite->user) < 0) return -1; if (tDecodeI32(&decoder, &pUserWhite->numOfRange) < 0) return -1; - pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range)); + if ((pUserWhite->pIpRanges = taosMemoryCalloc(1, pUserWhite->numOfRange * sizeof(SIpV4Range))) == NULL) return -1; for (int j = 0; j < pUserWhite->numOfRange; j++) { SIpV4Range *pRange = &pUserWhite->pIpRanges[j]; if (tDecodeU32(&decoder, &pRange->ip) < 0) return -1; @@ -1784,10 +1774,14 @@ void tFreeSUpdateIpWhiteReq(SUpdateIpWhite *pReq) { } SUpdateIpWhite *cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq) { SUpdateIpWhite *pClone = taosMemoryCalloc(1, sizeof(SUpdateIpWhite)); + if (pClone == NULL) return NULL; pClone->numOfUser = pReq->numOfUser; pClone->ver = pReq->ver; - pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser); + if ((pClone->pUserIpWhite = taosMemoryCalloc(1, sizeof(SUpdateUserIpWhite) * pReq->numOfUser)) == NULL) { + taosMemoryFree(pClone); + return NULL; + } for (int i = 0; i < pReq->numOfUser; i++) { SUpdateUserIpWhite *pNew = &pClone->pUserIpWhite[i]; @@ -1798,7 +1792,14 @@ SUpdateIpWhite *cloneSUpdateIpWhiteReq(SUpdateIpWhite *pReq) { pNew->numOfRange = pOld->numOfRange; int32_t sz = pOld->numOfRange * sizeof(SIpV4Range); - pNew->pIpRanges = taosMemoryCalloc(1, sz); + if ((pNew->pIpRanges = taosMemoryCalloc(1, sz)) == NULL) { + for (int j = 0; j < i; j++) { + taosMemoryFree(pClone->pUserIpWhite[j].pIpRanges); + } + taosMemoryFree(pClone->pUserIpWhite); + taosMemoryFree(pClone); + return NULL; + } memcpy(pNew->pIpRanges, pOld->pIpRanges, sz); } return pClone; @@ -2185,13 +2186,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->readTbs, key, keyLen, value, valuelen + 1); @@ -2204,13 +2205,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->writeTbs, key, keyLen, value, valuelen + 1); @@ -2223,13 +2224,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->alterTbs, key, keyLen, value, valuelen + 1); @@ -2242,13 +2243,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->readViews, key, keyLen, value, valuelen + 1); @@ -2261,13 +2262,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->writeViews, key, keyLen, value, valuelen + 1); @@ -2280,13 +2281,13 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t valuelen = 0; if (tDecodeI32(pDecoder, &valuelen) < 0) goto _err; - value = taosMemoryCalloc(valuelen + 1, sizeof(char)); + if ((value = taosMemoryCalloc(valuelen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, value) < 0) goto _err; taosHashPut(pRsp->alterViews, key, keyLen, value, valuelen + 1); @@ -2299,7 +2300,7 @@ int32_t tDeserializeSGetUserAuthRspImpl(SDecoder *pDecoder, SGetUserAuthRsp *pRs int32_t keyLen = 0; if (tDecodeI32(pDecoder, &keyLen) < 0) goto _err; - key = taosMemoryCalloc(keyLen + 1, sizeof(char)); + if ((key = taosMemoryCalloc(keyLen + 1, sizeof(char))) == NULL) goto _err; if (tDecodeCStrTo(pDecoder, key) < 0) goto _err; int32_t ref = 0; @@ -2711,7 +2712,6 @@ int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pR if (pReq->codeLen > 0) { pReq->pCode = taosMemoryCalloc(1, pReq->codeLen); if (pReq->pCode == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } if (tDecodeCStrTo(&decoder, pReq->pCode) < 0) return -1; @@ -2722,7 +2722,6 @@ int32_t tDeserializeSCreateFuncReq(void *buf, int32_t bufLen, SCreateFuncReq *pR if (commentSize > 0) { pReq->pComment = taosMemoryCalloc(1, commentSize); if (pReq->pComment == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } if (tDecodeCStrTo(&decoder, pReq->pComment) < 0) return -1; @@ -2807,7 +2806,7 @@ int32_t tDeserializeSRetrieveFuncReq(void *buf, int32_t bufLen, SRetrieveFuncReq for (int32_t i = 0; i < pReq->numOfFuncs; ++i) { char fname[TSDB_FUNC_NAME_LEN] = {0}; if (tDecodeCStrTo(&decoder, fname) < 0) return -1; - taosArrayPush(pReq->pFuncNames, fname); + if (taosArrayPush(pReq->pFuncNames, fname) == NULL) return -1; } tEndDecode(&decoder); @@ -2883,7 +2882,6 @@ int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp if (fInfo.codeSize) { fInfo.pCode = taosMemoryCalloc(1, fInfo.codeSize); if (fInfo.pCode == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } if (tDecodeCStrTo(&decoder, fInfo.pCode) < 0) return -1; @@ -2891,13 +2889,12 @@ int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp if (fInfo.commentSize) { fInfo.pComment = taosMemoryCalloc(1, fInfo.commentSize); if (fInfo.pComment == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } if (tDecodeCStrTo(&decoder, fInfo.pComment) < 0) return -1; } - taosArrayPush(pRsp->pFuncInfos, &fInfo); + if (taosArrayPush(pRsp->pFuncInfos, &fInfo) == NULL) return -1; } pRsp->pFuncExtraInfos = taosArrayInit(pRsp->numOfFuncs, sizeof(SFuncExtraInfo)); @@ -2905,14 +2902,14 @@ int32_t tDeserializeSRetrieveFuncRsp(void *buf, int32_t bufLen, SRetrieveFuncRsp if (tDecodeIsEnd(&decoder)) { for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) { SFuncExtraInfo extraInfo = {0}; - taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo); + if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) return -1; } } else { for (int32_t i = 0; i < pRsp->numOfFuncs; ++i) { SFuncExtraInfo extraInfo = {0}; if (tDecodeI32(&decoder, &extraInfo.funcVersion) < 0) return -1; if (tDecodeI64(&decoder, &extraInfo.funcCreatedTime) < 0) return -1; - taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo); + if (taosArrayPush(pRsp->pFuncExtraInfos, &extraInfo) == NULL) return -1; } } tEndDecode(&decoder); @@ -3064,7 +3061,6 @@ int32_t tDeserializeSTableCfgRsp(void *buf, int32_t bufLen, STableCfgRsp *pRsp) char pFunc[TSDB_FUNC_NAME_LEN]; if (tDecodeCStrTo(&decoder, pFunc) < 0) return -1; if (taosArrayPush(pRsp->pFuncs, pFunc) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -3217,7 +3213,6 @@ int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) if (tDecodeI32(&decoder, &pReq->numOfRetensions) < 0) return -1; pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention)); if (pReq->pRetensions == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -3228,7 +3223,6 @@ int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) if (tDecodeI8(&decoder, &rentension.freqUnit) < 0) return -1; if (tDecodeI8(&decoder, &rentension.keepUnit) < 0) return -1; if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -3579,7 +3573,7 @@ int32_t tDeserializeSQnodeListRsp(void *buf, int32_t bufLen, SQnodeListRsp *pRsp for (int32_t i = 0; i < num; ++i) { SQueryNodeLoad load = {0}; if (tDecodeSQueryNodeLoad(&decoder, &load) < 0) return -1; - taosArrayPush(pRsp->qnodeList, &load); + if (taosArrayPush(pRsp->qnodeList, &load) == NULL) return -1; } tEndDecode(&decoder); @@ -3622,7 +3616,7 @@ int32_t tDeserializeSDnodeListRsp(void *buf, int32_t bufLen, SDnodeListRsp *pRsp for (int32_t i = 0; i < num; ++i) { SEpSet epSet = {0}; if (tDecodeSEpSet(&decoder, &epSet) < 0) return -1; - taosArrayPush(pRsp->dnodeList, &epSet); + if (taosArrayPush(pRsp->dnodeList, &epSet) == NULL) return -1; } tEndDecode(&decoder); @@ -3818,7 +3812,6 @@ int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) { if (pRsp->vgNum > 0) { pRsp->pVgroupInfos = taosArrayInit(pRsp->vgNum, sizeof(SVgroupInfo)); if (pRsp->pVgroupInfos == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -3829,7 +3822,7 @@ int32_t tDeserializeSUseDbRspImp(SDecoder *pDecoder, SUseDbRsp *pRsp) { if (tDecodeU32(pDecoder, &vgInfo.hashEnd) < 0) return -1; if (tDecodeSEpSet(pDecoder, &vgInfo.epSet) < 0) return -1; if (tDecodeI32(pDecoder, &vgInfo.numOfTable) < 0) return -1; - taosArrayPush(pRsp->pVgroupInfos, &vgInfo); + if (taosArrayPush(pRsp->pVgroupInfos, &vgInfo) == NULL) return -1; } } @@ -3890,7 +3883,6 @@ int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SDbHbRsp)); if (pRsp->pArray == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -3900,7 +3892,10 @@ int32_t tDeserializeSDbHbBatchRsp(void *buf, int32_t bufLen, SDbHbBatchRsp *pRsp tDecoderClear(&decoder); return -1; } - taosArrayPush(pRsp->pArray, &rsp); + if (taosArrayPush(pRsp->pArray, &rsp) == NULL) { + tDecoderClear(&decoder); + return -1; + } } tEndDecode(&decoder); @@ -3970,14 +3965,13 @@ int32_t tDeserializeSUserAuthBatchRsp(void *buf, int32_t bufLen, SUserAuthBatchR pRsp->pArray = taosArrayInit(numOfBatch, sizeof(SGetUserAuthRsp)); if (pRsp->pArray == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } for (int32_t i = 0; i < numOfBatch; ++i) { SGetUserAuthRsp rsp = {0}; if (tDeserializeSGetUserAuthRspImpl(&decoder, &rsp) < 0) return -1; - taosArrayPush(pRsp->pArray, &rsp); + if (taosArrayPush(pRsp->pArray, &rsp) == NULL) return -1; } tEndDecode(&decoder); @@ -4159,7 +4153,6 @@ int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableR if (pReq->nUids > 0) { pReq->pTbUids = taosArrayInit(pReq->nUids, sizeof(tb_uid_t)); if (pReq->pTbUids == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -4168,7 +4161,6 @@ int32_t tDeserializeSVDropTtlTableReq(void *buf, int32_t bufLen, SVDropTtlTableR for (int32_t i = 0; i < pReq->nUids; ++i) { if (tDecodeI64(&decoder, &tbUid) < 0) return -1; if (taosArrayPush(pReq->pTbUids, &tbUid) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -4275,7 +4267,6 @@ int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) { if (pRsp->numOfRetensions > 0) { pRsp->pRetensions = taosArrayInit(pRsp->numOfRetensions, sizeof(SRetention)); if (pRsp->pRetensions == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -4287,7 +4278,6 @@ int32_t tDeserializeSDbCfgRspImpl(SDecoder *decoder, SDbCfgRsp *pRsp) { if (tDecodeI8(decoder, &rentension.freqUnit) < 0) return -1; if (tDecodeI8(decoder, &rentension.keepUnit) < 0) return -1; if (taosArrayPush(pRsp->pRetensions, &rentension) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -4829,14 +4819,17 @@ int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) { if (tDecodeI32(&decoder, &numOfMeta) < 0) return -1; pRsp->pMetaRsp = taosArrayInit(numOfMeta, sizeof(STableMetaRsp)); if (pRsp->pMetaRsp == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } for (int32_t i = 0; i < numOfMeta; ++i) { STableMetaRsp tableMetaRsp = {0}; if (tDecodeSTableMetaRsp(&decoder, &tableMetaRsp) < 0) return -1; - taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp); + if (taosArrayPush(pRsp->pMetaRsp, &tableMetaRsp) == NULL) { + taosMemoryFree(tableMetaRsp.pSchemas); + taosMemoryFree(tableMetaRsp.pSchemaExt); + return -1; + } } int32_t numOfIndex = 0; @@ -4844,7 +4837,6 @@ int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) { pRsp->pIndexRsp = taosArrayInit(numOfIndex, sizeof(STableIndexRsp)); if (pRsp->pIndexRsp == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -4869,7 +4861,10 @@ int32_t tDeserializeSSTbHbRsp(void *buf, int32_t bufLen, SSTbHbRsp *pRsp) { } } } - taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp); + if (taosArrayPush(pRsp->pIndexRsp, &tableIndexRsp) == NULL) { + taosArrayDestroyEx(tableIndexRsp.pIndex, tFreeSTableIndexInfo); + return -1; + } } tEndDecode(&decoder); @@ -5423,7 +5418,6 @@ int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq * if (tDecodeI32(&decoder, &pReq->numOfRetensions) < 0) return -1; pReq->pRetensions = taosArrayInit(pReq->numOfRetensions, sizeof(SRetention)); if (pReq->pRetensions == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -5434,7 +5428,6 @@ int32_t tDeserializeSCreateVnodeReq(void *buf, int32_t bufLen, SCreateVnodeReq * if (tDecodeI8(&decoder, &rentension.freqUnit) < 0) return -1; if (tDecodeI8(&decoder, &rentension.keepUnit) < 0) return -1; if (taosArrayPush(pReq->pRetensions, &rentension) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -6305,18 +6298,18 @@ int32_t tDeserializeSVArbHeartBeatReq(void *buf, int32_t bufLen, SVArbHeartBeatR if (tStartDecode(&decoder) < 0) return -1; if (tDecodeI32(&decoder, &pReq->dnodeId) < 0) return -1; - pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->arbToken) < 0) return -1; if (tDecodeI64(&decoder, &pReq->arbTerm) < 0) return -1; - pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember)); + if ((pReq->hbMembers = taosArrayInit(16, sizeof(SVArbHbReqMember))) == NULL) return -1; int32_t size = 0; if (tDecodeI32(&decoder, &size) < 0) return -1; for (int32_t i = 0; i < size; i++) { SVArbHbReqMember member = {0}; if (tDecodeI32(&decoder, &member.vgId) < 0) return -1; if (tDecodeI32(&decoder, &member.hbSeq) < 0) return -1; - taosArrayPush(pReq->hbMembers, &member); + if (taosArrayPush(pReq->hbMembers, &member) == NULL) return -1; } tEndDecode(&decoder); @@ -6362,13 +6355,13 @@ int32_t tDeserializeSVArbHeartBeatRsp(void *buf, int32_t bufLen, SVArbHeartBeatR if (tDecodeI32(&decoder, &pRsp->dnodeId) < 0) return -1; int32_t sz = 0; if (tDecodeI32(&decoder, &sz) < 0) return -1; - pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember)); + if ((pRsp->hbMembers = taosArrayInit(sz, sizeof(SVArbHbRspMember))) == NULL) return -1; for (int32_t i = 0; i < sz; i++) { SVArbHbRspMember hbMember = {0}; if (tDecodeI32(&decoder, &hbMember.vgId) < 0) return -1; if (tDecodeI32(&decoder, &hbMember.hbSeq) < 0) return -1; if (tDecodeCStrTo(&decoder, hbMember.memberToken) < 0) return -1; - taosArrayPush(pRsp->hbMembers, &hbMember); + if (taosArrayPush(pRsp->hbMembers, &hbMember) == NULL) return -1; } tEndDecode(&decoder); @@ -6405,12 +6398,12 @@ int32_t tDeserializeSVArbCheckSyncReq(void *buf, int32_t bufLen, SVArbCheckSyncR tDecoderInit(&decoder, buf, bufLen); if (tStartDecode(&decoder) < 0) return -1; - pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->arbToken) < 0) return -1; if (tDecodeI64(&decoder, &pReq->arbTerm) < 0) return -1; - pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->member0Token) < 0) return -1; - pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->member1Token) < 0) return -1; tEndDecode(&decoder); @@ -6451,11 +6444,11 @@ int32_t tDeserializeSVArbCheckSyncRsp(void *buf, int32_t bufLen, SVArbCheckSyncR tDecoderInit(&decoder, buf, bufLen); if (tStartDecode(&decoder) < 0) return -1; - pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pRsp->arbToken) < 0) return -1; - pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pRsp->member0Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pRsp->member0Token) < 0) return -1; - pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pRsp->member1Token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pRsp->member1Token) < 0) return -1; if (tDecodeI32(&decoder, &pRsp->vgId) < 0) return -1; if (tDecodeI32(&decoder, &pRsp->errCode) < 0) return -1; @@ -6496,10 +6489,10 @@ int32_t tDeserializeSVArbSetAssignedLeaderReq(void *buf, int32_t bufLen, SVArbSe tDecoderInit(&decoder, buf, bufLen); if (tStartDecode(&decoder) < 0) return -1; - pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->arbToken) < 0) return -1; if (tDecodeI64(&decoder, &pReq->arbTerm) < 0) return -1; - pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pReq->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pReq->memberToken) < 0) return -1; tEndDecode(&decoder); @@ -6537,9 +6530,9 @@ int32_t tDeserializeSVArbSetAssignedLeaderRsp(void *buf, int32_t bufLen, SVArbSe tDecoderInit(&decoder, buf, bufLen); if (tStartDecode(&decoder) < 0) return -1; - pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pRsp->arbToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pRsp->arbToken) < 0) return -1; - pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((pRsp->memberToken = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, pRsp->memberToken) < 0) return -1; if (tDecodeI32(&decoder, &pRsp->vgId) < 0) return -1; @@ -6609,17 +6602,17 @@ int32_t tDeserializeSMArbUpdateGroupBatchReq(void *buf, int32_t bufLen, SMArbUpd if (tDecodeI64(&decoder, &group.dbUid) < 0) return -1; for (int i = 0; i < TSDB_ARB_GROUP_MEMBER_NUM; i++) { if (tDecodeI32(&decoder, &group.members[i].dnodeId) < 0) return -1; - group.members[i].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((group.members[i].token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, group.members[i].token) < 0) return -1; } if (tDecodeI8(&decoder, &group.isSync) < 0) return -1; if (tDecodeI32(&decoder, &group.assignedLeader.dnodeId) < 0) return -1; - group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE); + if ((group.assignedLeader.token = taosMemoryMalloc(TSDB_ARB_TOKEN_SIZE)) == NULL) return -1; if (tDecodeCStrTo(&decoder, group.assignedLeader.token) < 0) return -1; if (tDecodeI64(&decoder, &group.version) < 0) return -1; group.assignedLeader.acked = false; - taosArrayPush(updateArray, &group); + if (taosArrayPush(updateArray, &group) == NULL) return -1; } if (!tDecodeIsEnd(&decoder)) { @@ -7230,7 +7223,7 @@ int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) for (int32_t m = 0; m < uidNum; ++m) { if (tDecodeI64(pDecoder, &uid) < 0) return -1; - taosArrayPush(pScan->pUidList, &uid); + if (taosArrayPush(pScan->pUidList, &uid) == NULL) return -1; } } else { pScan->pUidList = NULL; @@ -7252,7 +7245,7 @@ int32_t tDeserializeSOperatorParam(SDecoder *pDecoder, SOperatorParam *pOpParam) SOperatorParam *pChild = taosMemoryCalloc(1, sizeof(SOperatorParam)); if (NULL == pChild) return -1; if (tDeserializeSOperatorParam(pDecoder, pChild) < 0) return -1; - taosArrayPush(pOpParam->pChildren, &pChild); + if (taosArrayPush(pOpParam->pChildren, &pChild) == NULL) return -1; } } else { pOpParam->pChildren = NULL; @@ -7633,7 +7626,7 @@ int32_t tDeserializeSSchedulerHbReq(void *buf, int32_t bufLen, SSchedulerHbReq * if (tDecodeU64(&decoder, &action.queryId) < 0) return -1; if (tDecodeU64(&decoder, &action.taskId) < 0) return -1; if (tDecodeI8(&decoder, &action.action) < 0) return -1; - taosArrayPush(pReq->taskAction, &action); + if (taosArrayPush(pReq->taskAction, &action) == NULL) return -1; } } else { pReq->taskAction = NULL; @@ -7695,7 +7688,7 @@ int32_t tDeserializeSSchedulerHbRsp(void *buf, int32_t bufLen, SSchedulerHbRsp * if (tDecodeI64(&decoder, &status.refId) < 0) return -1; if (tDecodeI32(&decoder, &status.execId) < 0) return -1; if (tDecodeI8(&decoder, &status.status) < 0) return -1; - taosArrayPush(pRsp->taskStatus, &status); + if (taosArrayPush(pRsp->taskStatus, &status) == NULL) return -1; } } else { pRsp->taskStatus = NULL; @@ -8090,7 +8083,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (pReq->numOfTags > 0) { pReq->pTags = taosArrayInit(pReq->numOfTags, sizeof(SField)); if (pReq->pTags == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -8101,7 +8093,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (tDecodeI32(&decoder, &field.bytes) < 0) return -1; if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (taosArrayPush(pReq->pTags, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -8112,7 +8103,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (numOfFillNullCols > 0) { pReq->fillNullCols = taosArrayInit(numOfFillNullCols, sizeof(SColLocation)); if (pReq->fillNullCols == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -8122,7 +8112,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (tDecodeI16(&decoder, &col.colId) < 0) return -1; if (tDecodeI8(&decoder, &col.type) < 0) return -1; if (taosArrayPush(pReq->fillNullCols, &col) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -8136,7 +8125,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (numOfVgVer > 0) { pReq->pVgroupVerList = taosArrayInit(numOfVgVer, sizeof(SVgroupVer)); if (pReq->pVgroupVerList == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -8145,7 +8133,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (tDecodeI32(&decoder, &v.vgId) < 0) return -1; if (tDecodeI64(&decoder, &v.ver) < 0) return -1; if (taosArrayPush(pReq->pVgroupVerList, &v) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -8155,7 +8142,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (colSize > 0) { pReq->pCols = taosArrayInit(colSize, sizeof(SField)); if (pReq->pCols == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -8166,7 +8152,6 @@ int32_t tDeserializeSCMCreateStreamReq(void *buf, int32_t bufLen, SCMCreateStrea if (tDecodeI32(&decoder, &field.bytes) < 0) return -1; if (tDecodeCStrTo(&decoder, field.name) < 0) return -1; if (taosArrayPush(pReq->pCols, &field) == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } @@ -8445,7 +8430,7 @@ int tDecodeSVCreateTbReq(SDecoder *pCoder, SVCreateTbReq *pReq) { char *tmp = NULL; if (tDecodeCStr(pCoder, &tmp) < 0) return -1; strncpy(name, tmp, TSDB_COL_NAME_LEN - 1); - taosArrayPush(pReq->ctb.tagName, name); + if (taosArrayPush(pReq->ctb.tagName, name) == NULL) return -1; } } else if (pReq->type == TSDB_NORMAL_TABLE) { if (tDecodeSSchemaWrapperEx(pCoder, &pReq->ntb.schemaRow) < 0) return -1; @@ -9195,7 +9180,7 @@ int32_t tDecodeSTqOffsetVal(SDecoder *pDecoder, STqOffsetVal *pOffsetVal) { return 0; } -void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) { +int32_t tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) { if (pVal->type == TMQ_OFFSET__RESET_NONE) { (void)snprintf(buf, maxLen, "none"); } else if (pVal->type == TMQ_OFFSET__RESET_EARLIEST) { @@ -9207,18 +9192,18 @@ void tFormatOffset(char *buf, int32_t maxLen, const STqOffsetVal *pVal) { } else if (pVal->type == TMQ_OFFSET__SNAPSHOT_DATA || pVal->type == TMQ_OFFSET__SNAPSHOT_META) { if (IS_VAR_DATA_TYPE(pVal->primaryKey.type)) { char *tmp = taosMemoryCalloc(1, pVal->primaryKey.nData + 1); - if (tmp == NULL) { - return; - } + if (tmp == NULL) return terrno; (void)memcpy(tmp, pVal->primaryKey.pData, pVal->primaryKey.nData); (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%s", pVal->uid, pVal->ts, - pVal->primaryKey.type, tmp); + pVal->primaryKey.type, tmp); taosMemoryFree(tmp); } else { (void)snprintf(buf, maxLen, "tsdb:%" PRId64 "|%" PRId64 ",pk type:%d,val:%" PRId64, pVal->uid, pVal->ts, - pVal->primaryKey.type, pVal->primaryKey.val); + pVal->primaryKey.type, pVal->primaryKey.val); } } + + return 0; } bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) { @@ -9241,13 +9226,16 @@ bool tOffsetEqual(const STqOffsetVal *pLeft, const STqOffsetVal *pRight) { return false; } -void tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) { +int32_t tOffsetCopy(STqOffsetVal *pLeft, const STqOffsetVal *pRight) { tOffsetDestroy(pLeft); *pLeft = *pRight; if (IS_VAR_DATA_TYPE(pRight->primaryKey.type)) { - pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData); + if ((pLeft->primaryKey.pData = taosMemoryMalloc(pRight->primaryKey.nData)) == NULL) { + return terrno; + } (void)memcpy(pLeft->primaryKey.pData, pRight->primaryKey.pData, pRight->primaryKey.nData); } + return 0; } void tOffsetDestroy(void *param) { @@ -9386,7 +9374,9 @@ int32_t tDecodeDeleteRes(SDecoder *pCoder, SDeleteRes *pRes) { if (tDecodeI32v(pCoder, &nUid) < 0) return -1; for (int32_t iUid = 0; iUid < nUid; iUid++) { if (tDecodeU64(pCoder, &uid) < 0) return -1; - if (pRes->uidList) taosArrayPush(pRes->uidList, &uid); + if (pRes->uidList) { + if (taosArrayPush(pRes->uidList, &uid) == NULL) return -1; + } } if (tDecodeI64(pCoder, &pRes->skey) < 0) return -1; if (tDecodeI64(pCoder, &pRes->ekey) < 0) return -1; @@ -9457,24 +9447,24 @@ int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRspCommon *pRsp) { if (tDecodeSTqOffsetVal(pDecoder, &pRsp->rspOffset) < 0) return -1; if (tDecodeI32(pDecoder, &pRsp->blockNum) < 0) return -1; if (pRsp->blockNum != 0) { - pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *)); - pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t)); + if ((pRsp->blockData = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) return -1; + if ((pRsp->blockDataLen = taosArrayInit(pRsp->blockNum, sizeof(int32_t))) == NULL) return -1; if (tDecodeI8(pDecoder, &pRsp->withTbName) < 0) return -1; if (tDecodeI8(pDecoder, &pRsp->withSchema) < 0) return -1; if (pRsp->withTbName) { - pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *)); + if ((pRsp->blockTbName = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) return -1; } if (pRsp->withSchema) { - pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *)); + if ((pRsp->blockSchema = taosArrayInit(pRsp->blockNum, sizeof(void *))) == NULL) return -1; } for (int32_t i = 0; i < pRsp->blockNum; i++) { void *data; uint64_t bLen; if (tDecodeBinaryAlloc(pDecoder, &data, &bLen) < 0) return -1; - taosArrayPush(pRsp->blockData, &data); + if (taosArrayPush(pRsp->blockData, &data) == NULL) return -1; int32_t len = bLen; - taosArrayPush(pRsp->blockDataLen, &len); + if (taosArrayPush(pRsp->blockDataLen, &len) == NULL) return -1; if (pRsp->withSchema) { SSchemaWrapper *pSW = (SSchemaWrapper *)taosMemoryCalloc(1, sizeof(SSchemaWrapper)); @@ -9484,13 +9474,16 @@ int32_t tDecodeMqDataRspCommon(SDecoder *pDecoder, SMqDataRspCommon *pRsp) { return -1; } - taosArrayPush(pRsp->blockSchema, &pSW); + if (taosArrayPush(pRsp->blockSchema, &pSW) == NULL) { + taosMemoryFree(pSW); + return -1; + } } if (pRsp->withTbName) { char *tbName; if (tDecodeCStrAlloc(pDecoder, &tbName) < 0) return -1; - taosArrayPush(pRsp->blockTbName, &tbName); + if (taosArrayPush(pRsp->blockTbName, &tbName) == NULL) return -1; } } } @@ -9544,15 +9537,15 @@ int32_t tDecodeSTaosxRsp(SDecoder *pDecoder, void *rsp) { STaosxRsp *pRsp = (STaosxRsp *)rsp; if (tDecodeI32(pDecoder, &pRsp->createTableNum) < 0) return -1; if (pRsp->createTableNum) { - pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t)); - pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *)); + if ((pRsp->createTableLen = taosArrayInit(pRsp->createTableNum, sizeof(int32_t))) == NULL) return -1; + if ((pRsp->createTableReq = taosArrayInit(pRsp->createTableNum, sizeof(void *))) == NULL) return -1; for (int32_t i = 0; i < pRsp->createTableNum; i++) { void *pCreate = NULL; uint64_t len = 0; if (tDecodeBinaryAlloc(pDecoder, &pCreate, &len) < 0) return -1; int32_t l = (int32_t)len; - taosArrayPush(pRsp->createTableLen, &l); - taosArrayPush(pRsp->createTableReq, &pCreate); + if (taosArrayPush(pRsp->createTableLen, &l) == NULL) return -1; + if (taosArrayPush(pRsp->createTableReq, &pCreate) == NULL) return -1; } } @@ -9605,7 +9598,7 @@ static int32_t tDecodeSBatchDeleteReqCommon(SDecoder *pDecoder, SBatchDeleteReq for (int32_t i = 0; i < sz; i++) { SSingleDeleteReq deleteReq; if (tDecodeSSingleDeleteReq(pDecoder, &deleteReq) < 0) return -1; - taosArrayPush(pReq->deleteReqs, &deleteReq); + if (taosArrayPush(pReq->deleteReqs, &deleteReq) == NULL) return -1; } return 0; } @@ -9694,7 +9687,6 @@ static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbDa if (pSubmitTbData->flags & SUBMIT_REQ_AUTO_CREATE_TABLE) { pSubmitTbData->pCreateTbReq = taosMemoryCalloc(1, sizeof(SVCreateTbReq)); if (pSubmitTbData->pCreateTbReq == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; goto _exit; } @@ -9728,7 +9720,7 @@ static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbDa pSubmitTbData->aCol = taosArrayInit(nColData, sizeof(SColData)); if (pSubmitTbData->aCol == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -9744,7 +9736,7 @@ static int32_t tDecodeSSubmitTbData(SDecoder *pCoder, SSubmitTbData *pSubmitTbDa pSubmitTbData->aRowP = taosArrayInit(nRow, sizeof(SRow *)); if (pSubmitTbData->aRowP == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -9804,7 +9796,7 @@ int32_t tDecodeSubmitReq(SDecoder *pCoder, SSubmitReq2 *pReq) { pReq->aSubmitTbData = taosArrayInit(nSubmitTbData, sizeof(SSubmitTbData)); if (pReq->aSubmitTbData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -9929,7 +9921,7 @@ int32_t tDecodeSSubmitRsp2(SDecoder *pCoder, SSubmitRsp2 *pRsp) { if (nCreateTbRsp) { pRsp->aCreateTbRsp = taosArrayInit(nCreateTbRsp, sizeof(SVCreateTbRsp)); if (pRsp->aCreateTbRsp == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -10061,7 +10053,10 @@ void *tDecodeMqSubTopicEp(void *buf, SMqSubTopicEp *pTopicEp) { for (int32_t i = 0; i < sz; i++) { SMqSubVgEp vgEp; buf = tDecodeSMqSubVgEp(buf, &vgEp); - taosArrayPush(pTopicEp->vgs, &vgEp); + if (taosArrayPush(pTopicEp->vgs, &vgEp) == NULL) { + taosArrayDestroy(pTopicEp->vgs); + return NULL; + } } buf = taosDecodeSSchemaWrapper(buf, &pTopicEp->schema); return buf; @@ -10115,7 +10110,6 @@ int32_t tDeserializeSCMCreateViewReq(void *buf, int32_t bufLen, SCMCreateViewReq if (pReq->numOfCols > 0) { pReq->pSchema = taosMemoryCalloc(pReq->numOfCols, sizeof(SSchema)); if (pReq->pSchema == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -10257,7 +10251,6 @@ static int32_t tDecodeSViewMetaRsp(SDecoder *pDecoder, SViewMetaRsp *pRsp) { if (pRsp->numOfCols > 0) { pRsp->pSchema = taosMemoryCalloc(pRsp->numOfCols, sizeof(SSchema)); if (pRsp->pSchema == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -10323,7 +10316,6 @@ int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) { if (tDecodeI32(&decoder, &numOfMeta) < 0) return -1; pRsp->pViewRsp = taosArrayInit(numOfMeta, POINTER_BYTES); if (pRsp->pViewRsp == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } @@ -10331,7 +10323,7 @@ int32_t tDeserializeSViewHbRsp(void *buf, int32_t bufLen, SViewHbRsp *pRsp) { SViewMetaRsp *metaRsp = taosMemoryCalloc(1, sizeof(SViewMetaRsp)); if (NULL == metaRsp) return -1; if (tDecodeSViewMetaRsp(&decoder, metaRsp) < 0) return -1; - taosArrayPush(pRsp->pViewRsp, &metaRsp); + if (taosArrayPush(pRsp->pViewRsp, &metaRsp) == NULL) return -1; } tEndDecode(&decoder); @@ -10469,7 +10461,7 @@ static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInf for (int32_t i = 0; i < size; ++i) { SSchema schema = {0}; if (tDecodeSSchema(pDecoder, &schema) < 0) return -1; - taosArrayPush(pTsmaInfo->pTags, &schema); + if (taosArrayPush(pTsmaInfo->pTags, &schema) == NULL) return -1; } } @@ -10480,7 +10472,7 @@ static int32_t tDecodeTableTSMAInfo(SDecoder *pDecoder, STableTSMAInfo *pTsmaInf for (int32_t i = 0; i < size; ++i) { SSchema schema = {0}; if (tDecodeSSchema(pDecoder, &schema) < 0) return -1; - taosArrayPush(pTsmaInfo->pUsedCols, &schema); + if (taosArrayPush(pTsmaInfo->pUsedCols, &schema) == NULL) return -1; } } if (tDecodeCStrAlloc(pDecoder, &pTsmaInfo->ast) < 0) return -1; @@ -10511,7 +10503,7 @@ static int32_t tDecodeTableTSMAInfoRsp(SDecoder *pDecoder, STableTSMAInfoRsp *pR for (int32_t i = 0; i < size; ++i) { STableTSMAInfo *pTsma = taosMemoryCalloc(1, sizeof(STableTSMAInfo)); if (!pTsma) return -1; - taosArrayPush(pRsp->pTsmas, &pTsma); + if (taosArrayPush(pRsp->pTsmas, &pTsma) == NULL) return -1; if (tDecodeTableTSMAInfo(pDecoder, pTsma) < 0) return -1; } return 0; @@ -10717,13 +10709,12 @@ int32_t tDecodeSMDropTbReqOnSingleVg(SDecoder *pDecoder, SMDropTbReqsOnSingleVg if (tDecodeI32(pDecoder, &size) < 0) return -1; pReq->pTbs = taosArrayInit(size, sizeof(SVDropTbReq)); if (!pReq->pTbs) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } SVDropTbReq pTbReq = {0}; for (int32_t i = 0; i < size; ++i) { if (tDecodeSVDropTbReq(pDecoder, &pTbReq) < 0) return -1; - taosArrayPush(pReq->pTbs, &pTbReq); + if (taosArrayPush(pReq->pTbs, &pTbReq) == NULL) return -1; } return 0; } @@ -10757,13 +10748,12 @@ int32_t tDeserializeSMDropTbsReq(void *buf, int32_t bufLen, SMDropTbsReq *pReq) if (tDecodeI32(&decoder, &size) < 0) return -1; pReq->pVgReqs = taosArrayInit(size, sizeof(SMDropTbReqsOnSingleVg)); if (!pReq->pVgReqs) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } for (int32_t i = 0; i < size; ++i) { SMDropTbReqsOnSingleVg vgReq = {0}; - tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq); - taosArrayPush(pReq->pVgReqs, &vgReq); + if (tDecodeSMDropTbReqOnSingleVg(&decoder, &vgReq) < 0) return -1; + if (taosArrayPush(pReq->pVgReqs, &vgReq) == NULL) return -1; } tEndDecode(&decoder); tDecoderClear(&decoder); @@ -10791,11 +10781,11 @@ int32_t tDecodeVFetchTtlExpiredTbsRsp(SDecoder *pCoder, SVFetchTtlExpiredTbsRsp if (tDecodeI32(pCoder, &size) < 0) return -1; if (size > 0) { pRsp->pExpiredTbs = taosArrayInit(size, sizeof(SVDropTbReq)); - if (!pRsp->pExpiredTbs) return TSDB_CODE_OUT_OF_MEMORY; + if (!pRsp->pExpiredTbs) return terrno; SVDropTbReq tb = {0}; for (int32_t i = 0; i < size; ++i) { if (tDecodeSVDropTbReq(pCoder, &tb) < 0) return -1; - taosArrayPush(pRsp->pExpiredTbs, &tb); + if (taosArrayPush(pRsp->pExpiredTbs, &tb) == NULL) return -1; } } return 0; @@ -10834,8 +10824,8 @@ int32_t tDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) { uint64_t len = 0; if (tDecodeBinaryAlloc(pDecoder, &pCreate, &len) < 0) return -1; int32_t l = (int32_t)len; - taosArrayPush(pRsp->batchMetaReq, &pCreate); - taosArrayPush(pRsp->batchMetaLen, &l); + if (taosArrayPush(pRsp->batchMetaReq, &pCreate) == NULL) return -1; + if (taosArrayPush(pRsp->batchMetaLen, &l) == NULL) return -1; } } return 0; @@ -10848,6 +10838,9 @@ int32_t tSemiDecodeMqBatchMetaRsp(SDecoder *pDecoder, SMqBatchMetaRsp *pRsp) { } pRsp->metaBuffLen = TD_CODER_REMAIN_CAPACITY(pDecoder); pRsp->pMetaBuff = taosMemoryCalloc(1, pRsp->metaBuffLen); + if (pRsp->pMetaBuff == NULL) { + return -1; + } memcpy(pRsp->pMetaBuff, TD_CODER_CURRENT(pDecoder), pRsp->metaBuffLen); return 0; } diff --git a/source/common/src/tname.c b/source/common/src/tname.c index d817fac292..d38105d6ce 100644 --- a/source/common/src/tname.c +++ b/source/common/src/tname.c @@ -181,7 +181,7 @@ int32_t tNameSetDbName(SName* dst, int32_t acct, const char* dbName, size_t name int32_t tNameAddTbName(SName* dst, const char* tbName, size_t nameLen) { // too long account id or too long db name if (nameLen >= tListLen(dst->tname) || nameLen <= 0) { - return -1; + return TSDB_CODE_INVALID_PARA; } dst->type = TSDB_TABLE_NAME_T; @@ -225,14 +225,14 @@ bool tNameTbNameEqual(SName* left, SName* right) { int32_t tNameFromString(SName* dst, const char* str, uint32_t type) { if (strlen(str) == 0) { - return -1; + return TSDB_CODE_INVALID_PARA; } char* p = NULL; if ((type & T_NAME_ACCT) == T_NAME_ACCT) { p = strstr(str, TS_PATH_DELIMITER); if (p == NULL) { - return -1; + return TSDB_CODE_INVALID_PARA; } dst->acctId = taosStr2Int32(str, NULL, 10); @@ -252,7 +252,7 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) { // too long account id or too long db name if ((len >= tListLen(dst->dbname)) || (len <= 0)) { - return -1; + return TSDB_CODE_INVALID_PARA; } memcpy(dst->dbname, start, len); @@ -266,7 +266,7 @@ int32_t tNameFromString(SName* dst, const char* str, uint32_t type) { // too long account id or too long db name int32_t len = (int32_t)strlen(start); if ((len >= tListLen(dst->tname)) || (len <= 0)) { - return -1; + return TSDB_CODE_INVALID_PARA; } memcpy(dst->tname, start, len); @@ -302,7 +302,7 @@ int32_t buildChildTableName(RandTableName* rName) { for (int j = 0; j < taosArrayGetSize(rName->tags); ++j) { taosStringBuilderAppendChar(&sb, ','); SSmlKv* tagKv = taosArrayGet(rName->tags, j); - if(tagKv == NULL) { + if (tagKv == NULL) { return TSDB_CODE_SML_INVALID_DATA; } taosStringBuilderAppendStringLen(&sb, tagKv->key, tagKv->keyLen); diff --git a/source/common/src/ttime.c b/source/common/src/ttime.c index d3207a1912..efabe5cf07 100644 --- a/source/common/src/ttime.c +++ b/source/common/src/ttime.c @@ -1252,13 +1252,13 @@ static bool isSeperatorChar(char c) { return (c > 0x20 && c < 0x7F && !(c >= 'A' && c <= 'Z') && !(c >= 'a' && c <= 'z') && !(c >= '0' && c <= '9')); } -static void parseTsFormat(const char* formatStr, SArray* formats) { +static int32_t parseTsFormat(const char* formatStr, SArray* formats) { TSFormatNode* lastOtherFormat = NULL; while (*formatStr) { const TSFormatKeyWord* key = keywordSearch(formatStr); if (key) { TSFormatNode format = {.key = key, .type = TS_FORMAT_NODE_TYPE_KEYWORD}; - taosArrayPush(formats, &format); + if (NULL == taosArrayPush(formats, &format)) TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); formatStr += key->len; lastOtherFormat = NULL; } else { @@ -1286,7 +1286,7 @@ static void parseTsFormat(const char* formatStr, SArray* formats) { TSFormatNode format = {.type = TS_FORMAT_NODE_TYPE_CHAR, .key = NULL}; format.c = formatStr; format.len = 1; - taosArrayPush(formats, &format); + if (NULL == taosArrayPush(formats, &format)) TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); formatStr++; last = taosArrayGetLast(formats); } @@ -1314,13 +1314,14 @@ static void parseTsFormat(const char* formatStr, SArray* formats) { .key = NULL}; format.c = formatStr; format.len = 1; - taosArrayPush(formats, &format); + if (NULL == taosArrayPush(formats, &format)) TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); formatStr++; if (format.type == TS_FORMAT_NODE_TYPE_CHAR) lastOtherFormat = taosArrayGetLast(formats); } } } } + TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t tm2char(const SArray* formats, const struct STm* tm, char* s, int32_t outLen) { @@ -1488,7 +1489,7 @@ static int32_t tm2char(const SArray* formats, const struct STm* tm, char* s, int s += 6; break; case TSFKW_NS: - sprintf(s, "%09" PRId64, tm->fsec); + (void)sprintf(s, "%09" PRId64, tm->fsec); s += 9; break; case TSFKW_TZH: @@ -1925,7 +1926,7 @@ int32_t taosTs2Char(const char* format, SArray** formats, int64_t ts, int32_t pr if (!*formats){ TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - parseTsFormat(format, *formats); + TAOS_CHECK_RETURN(parseTsFormat(format, *formats)); } struct STm tm; TAOS_CHECK_RETURN(taosTs2Tm(ts, precision, &tm)); @@ -1941,7 +1942,7 @@ int32_t taosChar2Ts(const char* format, SArray** formats, const char* tsStr, int if (!*formats) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - parseTsFormat(format, *formats); + TAOS_CHECK_RETURN(parseTsFormat(format, *formats)); } int32_t code = char2ts(tsStr, *formats, ts, precision, &sErrPos, &fErrIdx); if (code == -1) { @@ -1966,7 +1967,7 @@ int32_t TEST_ts2char(const char* format, int64_t ts, int32_t precision, char* ou if (!formats) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - parseTsFormat(format, formats); + TAOS_CHECK_RETURN(parseTsFormat(format, formats)); struct STm tm; TAOS_CHECK_GOTO(taosTs2Tm(ts, precision, &tm), NULL, _exit); TAOS_CHECK_GOTO(tm2char(formats, &tm, out, outLen), NULL, _exit); @@ -1980,11 +1981,11 @@ int32_t TEST_char2ts(const char* format, int64_t* ts, int32_t precision, const c const char* sErrPos; int32_t fErrIdx; SArray* formats = taosArrayInit(4, sizeof(TSFormatNode)); - parseTsFormat(format, formats); + TAOS_CHECK_RETURN(parseTsFormat(format, formats)); int32_t code = char2ts(tsStr, formats, ts, precision, &sErrPos, &fErrIdx); if (code == -1) { - printf("failed position: %s\n", sErrPos); - printf("failed format: %s\n", ((TSFormatNode*)taosArrayGet(formats, fErrIdx))->key->name); + (void)printf("failed position: %s\n", sErrPos); + (void)printf("failed format: %s\n", ((TSFormatNode*)taosArrayGet(formats, fErrIdx))->key->name); } taosArrayDestroy(formats); return code; diff --git a/source/common/src/ttypes.c b/source/common/src/ttypes.c index f37c5f1fc3..766e91f54e 100644 --- a/source/common/src/ttypes.c +++ b/source/common/src/ttypes.c @@ -175,7 +175,7 @@ void assignVal(char *val, const char *src, int32_t len, int32_t type) { break; default: { if (len > 0) { - memcpy(val, src, len); + (void)memcpy(val, src, len); } break; diff --git a/source/common/src/tvariant.c b/source/common/src/tvariant.c index d8e7b83c37..cd238fef25 100644 --- a/source/common/src/tvariant.c +++ b/source/common/src/tvariant.c @@ -426,7 +426,7 @@ void taosVariantCreateFromBinary(SVariant *pVar, const char *pz, size_t len, uin size_t lenInwchar = len / TSDB_NCHAR_SIZE; pVar->ucs4 = taosMemoryCalloc(1, (lenInwchar + 1) * TSDB_NCHAR_SIZE); - memcpy(pVar->ucs4, pz, lenInwchar * TSDB_NCHAR_SIZE); + (void)memcpy(pVar->ucs4, pz, lenInwchar * TSDB_NCHAR_SIZE); pVar->nLen = (int32_t)len; break; @@ -435,7 +435,7 @@ void taosVariantCreateFromBinary(SVariant *pVar, const char *pz, size_t len, uin case TSDB_DATA_TYPE_VARBINARY: case TSDB_DATA_TYPE_GEOMETRY: { // todo refactor, extract a method pVar->pz = taosMemoryCalloc(len + 1, sizeof(char)); - memcpy(pVar->pz, pz, len); + (void)memcpy(pVar->pz, pz, len); pVar->nLen = (int32_t)len; break; } @@ -470,10 +470,10 @@ void taosVariantAssign(SVariant *pDst, const SVariant *pSrc) { char *p = taosMemoryRealloc(pDst->pz, len); ASSERT(p); - memset(p, 0, len); + (void)memset(p, 0, len); pDst->pz = p; - memcpy(pDst->pz, pSrc->pz, pSrc->nLen); + (void)memcpy(pDst->pz, pSrc->pz, pSrc->nLen); pDst->nLen = pSrc->nLen; return; } diff --git a/source/common/test/commonTests.cpp b/source/common/test/commonTests.cpp index 5095bf3bfc..b85af42d1c 100644 --- a/source/common/test/commonTests.cpp +++ b/source/common/test/commonTests.cpp @@ -737,16 +737,17 @@ TEST(AlreadyAddGroupIdTest, GroupIdAddedWithDifferentLength) { #define SLOW_LOG_TYPE_OTHERS 0x4 #define SLOW_LOG_TYPE_ALL 0x7 -static int32_t taosSetSlowLogScope(char *pScope) { - if (NULL == pScope || 0 == strlen(pScope)) { - return SLOW_LOG_TYPE_QUERY; +static int32_t taosSetSlowLogScope(char* pScopeStr, int32_t* pScope) { + if (NULL == pScopeStr || 0 == strlen(pScopeStr)) { + *pScope = SLOW_LOG_TYPE_QUERY; + TAOS_RETURN(TSDB_CODE_SUCCESS); } int32_t slowScope = 0; char* scope = NULL; char *tmp = NULL; - while((scope = strsep(&pScope, "|")) != NULL){ + while((scope = strsep(&pScopeStr, "|")) != NULL){ taosMemoryFreeClear(tmp); tmp = taosStrdup(scope); strtrim(tmp); @@ -776,73 +777,94 @@ static int32_t taosSetSlowLogScope(char *pScope) { } taosMemoryFreeClear(tmp); - uError("Invalid slowLog scope value:%s", pScope); - terrno = TSDB_CODE_INVALID_CFG_VALUE; - return -1; + uError("Invalid slowLog scope value:%s", pScopeStr); + TAOS_RETURN(TSDB_CODE_INVALID_CFG_VALUE); } + *pScope = slowScope; taosMemoryFreeClear(tmp); - return slowScope; + TAOS_RETURN(TSDB_CODE_SUCCESS); } TEST(TaosSetSlowLogScopeTest, NullPointerInput) { - char *pScope = NULL; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_QUERY); + char* pScopeStr = NULL; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_QUERY); } TEST(TaosSetSlowLogScopeTest, EmptyStringInput) { - char pScope[1] = ""; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_QUERY); + char pScopeStr[1] = ""; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_QUERY); } TEST(TaosSetSlowLogScopeTest, AllScopeInput) { - char pScope[] = "all"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_ALL); + char pScopeStr[] = "all"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + + EXPECT_EQ(scope, SLOW_LOG_TYPE_ALL); } TEST(TaosSetSlowLogScopeTest, QueryScopeInput) { - char pScope[] = " query"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_QUERY); + char pScopeStr[] = " query"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_QUERY); } TEST(TaosSetSlowLogScopeTest, InsertScopeInput) { - char pScope[] = "insert"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_INSERT); + char pScopeStr[] = "insert"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_INSERT); } TEST(TaosSetSlowLogScopeTest, OthersScopeInput) { - char pScope[] = "others"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_OTHERS); + char pScopeStr[] = "others"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_OTHERS); } TEST(TaosSetSlowLogScopeTest, NoneScopeInput) { - char pScope[] = "none"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, SLOW_LOG_TYPE_NULL); + char pScopeStr[] = "none"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, SLOW_LOG_TYPE_NULL); } TEST(TaosSetSlowLogScopeTest, InvalidScopeInput) { - char pScope[] = "invalid"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, -1); + char pScopeStr[] = "invalid"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, -1); } TEST(TaosSetSlowLogScopeTest, MixedScopesInput) { - char pScope[] = "query|insert|others|none"; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, (SLOW_LOG_TYPE_QUERY | SLOW_LOG_TYPE_INSERT | SLOW_LOG_TYPE_OTHERS)); + char pScopeStr[] = "query|insert|others|none"; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, (SLOW_LOG_TYPE_QUERY | SLOW_LOG_TYPE_INSERT | SLOW_LOG_TYPE_OTHERS)); } TEST(TaosSetSlowLogScopeTest, MixedScopesInputWithSpaces) { - char pScope[] = "query | insert | others "; - int32_t result = taosSetSlowLogScope(pScope); - EXPECT_EQ(result, (SLOW_LOG_TYPE_QUERY | SLOW_LOG_TYPE_INSERT | SLOW_LOG_TYPE_OTHERS)); + char pScopeStr[] = "query | insert | others "; + int32_t scope = 0; + int32_t result = taosSetSlowLogScope(pScopeStr, &scope); + EXPECT_EQ(result, TSDB_CODE_SUCCESS); + EXPECT_EQ(scope, (SLOW_LOG_TYPE_QUERY | SLOW_LOG_TYPE_INSERT | SLOW_LOG_TYPE_OTHERS)); } #pragma GCC diagnostic pop diff --git a/source/dnode/mgmt/exe/dmMain.c b/source/dnode/mgmt/exe/dmMain.c index 85b0317541..2d748706b5 100644 --- a/source/dnode/mgmt/exe/dmMain.c +++ b/source/dnode/mgmt/exe/dmMain.c @@ -74,7 +74,7 @@ static struct { char encryptKey[ENCRYPT_KEY_LEN + 1]; } global = {0}; -static void dmSetDebugFlag(int32_t signum, void *sigInfo, void *context) { taosSetGlobalDebugFlag(143); } +static void dmSetDebugFlag(int32_t signum, void *sigInfo, void *context) { (void)taosSetGlobalDebugFlag(143); } static void dmSetAssert(int32_t signum, void *sigInfo, void *context) { tsAssert = 1; } static void dmStopDnode(int signum, void *sigInfo, void *context) { diff --git a/source/dnode/vnode/src/inc/metaTtl.h b/source/dnode/vnode/src/inc/metaTtl.h index ead2d89b28..f0e93c16bf 100644 --- a/source/dnode/vnode/src/inc/metaTtl.h +++ b/source/dnode/vnode/src/inc/metaTtl.h @@ -85,18 +85,18 @@ typedef struct { TXN* pTxn; } STtlDelTtlCtx; -int ttlMgrOpen(STtlManger** ppTtlMgr, TDB* pEnv, int8_t rollback, const char* logPrefix, int32_t flushThreshold); -void ttlMgrClose(STtlManger* pTtlMgr); +int32_t ttlMgrOpen(STtlManger** ppTtlMgr, TDB* pEnv, int8_t rollback, const char* logPrefix, int32_t flushThreshold); +void ttlMgrClose(STtlManger* pTtlMgr); -bool ttlMgrNeedUpgrade(TDB* pEnv); -int ttlMgrUpgrade(STtlManger* pTtlMgr, void* pMeta); +bool ttlMgrNeedUpgrade(TDB* pEnv); +int32_t ttlMgrUpgrade(STtlManger* pTtlMgr, void* pMeta); -int ttlMgrInsertTtl(STtlManger* pTtlMgr, const STtlUpdTtlCtx* pUpdCtx); -int ttlMgrDeleteTtl(STtlManger* pTtlMgr, const STtlDelTtlCtx* pDelCtx); -int ttlMgrUpdateChangeTime(STtlManger* pTtlMgr, const STtlUpdCtimeCtx* pUpdCtimeCtx); +int32_t ttlMgrInsertTtl(STtlManger* pTtlMgr, const STtlUpdTtlCtx* pUpdCtx); +int32_t ttlMgrDeleteTtl(STtlManger* pTtlMgr, const STtlDelTtlCtx* pDelCtx); +int32_t ttlMgrUpdateChangeTime(STtlManger* pTtlMgr, const STtlUpdCtimeCtx* pUpdCtimeCtx); -int ttlMgrFlush(STtlManger* pTtlMgr, TXN* pTxn); -int ttlMgrFindExpired(STtlManger* pTtlMgr, int64_t timePointMs, SArray* pTbUids, int32_t ttlDropMaxCount); +int32_t ttlMgrFlush(STtlManger* pTtlMgr, TXN* pTxn); +int32_t ttlMgrFindExpired(STtlManger* pTtlMgr, int64_t timePointMs, SArray* pTbUids, int32_t ttlDropMaxCount); #ifdef __cplusplus } diff --git a/source/dnode/vnode/src/meta/metaTtl.c b/source/dnode/vnode/src/meta/metaTtl.c index 58ecf54512..6b203b146d 100644 --- a/source/dnode/vnode/src/meta/metaTtl.c +++ b/source/dnode/vnode/src/meta/metaTtl.c @@ -46,39 +46,38 @@ static bool ttlMgrNeedFlush(STtlManger *pTtlMgr); const char *ttlTbname = "ttl.idx"; const char *ttlV1Tbname = "ttlv1.idx"; -int ttlMgrOpen(STtlManger **ppTtlMgr, TDB *pEnv, int8_t rollback, const char *logPrefix, int32_t flushThreshold) { - int ret = TSDB_CODE_SUCCESS; +int32_t ttlMgrOpen(STtlManger **ppTtlMgr, TDB *pEnv, int8_t rollback, const char *logPrefix, int32_t flushThreshold) { + int32_t code = TSDB_CODE_SUCCESS; int64_t startNs = taosGetTimestampNs(); *ppTtlMgr = NULL; STtlManger *pTtlMgr = (STtlManger *)tdbOsCalloc(1, sizeof(*pTtlMgr)); - if (pTtlMgr == NULL) return TSDB_CODE_OUT_OF_MEMORY; + if (pTtlMgr == NULL) TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); char *logBuffer = (char *)tdbOsCalloc(1, strlen(logPrefix) + 1); if (logBuffer == NULL) { tdbOsFree(pTtlMgr); - return TSDB_CODE_OUT_OF_MEMORY; + TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - strcpy(logBuffer, logPrefix); + (void)strcpy(logBuffer, logPrefix); pTtlMgr->logPrefix = logBuffer; pTtlMgr->flushThreshold = flushThreshold; - ret = tdbTbOpen(ttlV1Tbname, TDB_VARIANT_LEN, TDB_VARIANT_LEN, ttlIdxKeyV1Cmpr, pEnv, &pTtlMgr->pTtlIdx, rollback); - if (ret < 0) { - metaError("%s, failed to open %s since %s", pTtlMgr->logPrefix, ttlV1Tbname, tstrerror(terrno)); + code = tdbTbOpen(ttlV1Tbname, TDB_VARIANT_LEN, TDB_VARIANT_LEN, ttlIdxKeyV1Cmpr, pEnv, &pTtlMgr->pTtlIdx, rollback); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, failed to open %s since %s", pTtlMgr->logPrefix, ttlV1Tbname, tstrerror(code)); tdbOsFree(pTtlMgr); - return ret; + TAOS_RETURN(code); } pTtlMgr->pTtlCache = taosHashInit(8192, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK); pTtlMgr->pDirtyUids = taosHashInit(8192, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), true, HASH_NO_LOCK); - ret = ttlMgrFillCache(pTtlMgr); - if (ret < 0) { + if ((code = ttlMgrFillCache(pTtlMgr)) != TSDB_CODE_SUCCESS) { metaError("%s, failed to fill hash since %s", pTtlMgr->logPrefix, tstrerror(terrno)); ttlMgrCleanup(pTtlMgr); - return ret; + TAOS_RETURN(code); } int64_t endNs = taosGetTimestampNs(); @@ -86,7 +85,7 @@ int ttlMgrOpen(STtlManger **ppTtlMgr, TDB *pEnv, int8_t rollback, const char *lo taosHashGetSize(pTtlMgr->pTtlCache), endNs - startNs); *ppTtlMgr = pTtlMgr; - return TSDB_CODE_SUCCESS; + TAOS_RETURN(TSDB_CODE_SUCCESS); } void ttlMgrClose(STtlManger *pTtlMgr) { ttlMgrCleanup(pTtlMgr); } @@ -99,37 +98,34 @@ bool ttlMgrNeedUpgrade(TDB *pEnv) { return needUpgrade; } -int ttlMgrUpgrade(STtlManger *pTtlMgr, void *pMeta) { - SMeta *meta = (SMeta *)pMeta; - int ret = TSDB_CODE_SUCCESS; +int32_t ttlMgrUpgrade(STtlManger *pTtlMgr, void *pMeta) { + SMeta *meta = (SMeta *)pMeta; + int32_t code = TSDB_CODE_SUCCESS; - if (!tdbTbExist(ttlTbname, meta->pEnv)) return TSDB_CODE_SUCCESS; + if (!tdbTbExist(ttlTbname, meta->pEnv)) TAOS_RETURN(TSDB_CODE_SUCCESS); metaInfo("%s, ttl mgr start upgrade", pTtlMgr->logPrefix); int64_t startNs = taosGetTimestampNs(); - ret = tdbTbOpen(ttlTbname, sizeof(STtlIdxKey), 0, ttlIdxKeyCmpr, meta->pEnv, &pTtlMgr->pOldTtlIdx, 0); - if (ret < 0) { - metaError("%s, failed to open %s index since %s", pTtlMgr->logPrefix, ttlTbname, tstrerror(terrno)); + code = tdbTbOpen(ttlTbname, sizeof(STtlIdxKey), 0, ttlIdxKeyCmpr, meta->pEnv, &pTtlMgr->pOldTtlIdx, 0); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, failed to open %s index since %s", pTtlMgr->logPrefix, ttlTbname, tstrerror(code)); goto _out; } - ret = ttlMgrConvert(pTtlMgr->pOldTtlIdx, pTtlMgr->pTtlIdx, pMeta); - if (ret < 0) { - metaError("%s, failed to convert ttl index since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + if ((code = ttlMgrConvert(pTtlMgr->pOldTtlIdx, pTtlMgr->pTtlIdx, pMeta)) != TSDB_CODE_SUCCESS) { + metaError("%s, failed to convert ttl index since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } - ret = tdbTbDropByName(ttlTbname, meta->pEnv, meta->txn); - if (ret < 0) { - metaError("%s, failed to drop old ttl index since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + if ((code = tdbTbDropByName(ttlTbname, meta->pEnv, meta->txn)) != TSDB_CODE_SUCCESS) { + metaError("%s, failed to drop old ttl index since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } - ret = ttlMgrFillCache(pTtlMgr); - if (ret < 0) { - metaError("%s, failed to fill hash since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + if ((code = ttlMgrFillCache(pTtlMgr)) != TSDB_CODE_SUCCESS) { + metaError("%s, failed to fill hash since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } @@ -141,14 +137,14 @@ _out: tdbTbClose(pTtlMgr->pOldTtlIdx); pTtlMgr->pOldTtlIdx = NULL; - return ret; + TAOS_RETURN(code); } static void ttlMgrCleanup(STtlManger *pTtlMgr) { taosMemoryFree(pTtlMgr->logPrefix); taosHashCleanup(pTtlMgr->pTtlCache); taosHashCleanup(pTtlMgr->pDirtyUids); - tdbTbClose(pTtlMgr->pTtlIdx); + (void)tdbTbClose(pTtlMgr->pTtlIdx); taosMemoryFree(pTtlMgr); } @@ -215,30 +211,30 @@ static int32_t ttlMgrFillCacheOneEntry(const void *pKey, int keyLen, const void return taosHashPut(pCache, &uid, sizeof(uid), &data, sizeof(data)); } -static int ttlMgrConvertOneEntry(const void *pKey, int keyLen, const void *pVal, int valLen, void *pConvertData) { +static int32_t ttlMgrConvertOneEntry(const void *pKey, int keyLen, const void *pVal, int valLen, void *pConvertData) { SConvertData *pData = (SConvertData *)pConvertData; STtlIdxKey *ttlKey = (STtlIdxKey *)pKey; tb_uid_t uid = ttlKey->uid; int64_t ttlDays = 0; - int ret = metaGetTableTtlByUid(pData->pMeta, uid, &ttlDays); - if (ret < 0) { - metaError("ttlMgr convert failed to get ttl since %s", tstrerror(terrno)); + int32_t code = TSDB_CODE_SUCCESS; + if ((code = metaGetTableTtlByUid(pData->pMeta, uid, &ttlDays)) != TSDB_CODE_SUCCESS) { + metaError("ttlMgr convert failed to get ttl since %s", tstrerror(code)); goto _out; } STtlIdxKeyV1 ttlKeyV1 = {.deleteTimeMs = ttlKey->deleteTimeSec * 1000, .uid = uid}; - ret = tdbTbUpsert(pData->pNewTtlIdx, &ttlKeyV1, sizeof(ttlKeyV1), &ttlDays, sizeof(ttlDays), pData->pMeta->txn); - if (ret < 0) { - metaError("ttlMgr convert failed to upsert since %s", tstrerror(terrno)); + code = tdbTbUpsert(pData->pNewTtlIdx, &ttlKeyV1, sizeof(ttlKeyV1), &ttlDays, sizeof(ttlDays), pData->pMeta->txn); + if (code != TSDB_CODE_SUCCESS) { + metaError("ttlMgr convert failed to upsert since %s", tstrerror(code)); goto _out; } - ret = 0; + code = TSDB_CODE_SUCCESS; _out: - return ret; + TAOS_RETURN(code); } static int32_t ttlMgrFindExpiredOneEntry(const void *pKey, int keyLen, const void *pVal, int valLen, @@ -248,7 +244,10 @@ static int32_t ttlMgrFindExpiredOneEntry(const void *pKey, int keyLen, const voi int c = ttlIdxKeyV1Cmpr(&pCtx->expiredKey, sizeof(pCtx->expiredKey), pKey, keyLen); if (c > 0) { - taosArrayPush(pCtx->pTbUids, &((STtlIdxKeyV1 *)pKey)->uid); + if (NULL == taosArrayPush(pCtx->pTbUids, &((STtlIdxKeyV1 *)pKey)->uid)) { + metaError("ttlMgr find expired failed since %s", tstrerror(TSDB_CODE_OUT_OF_MEMORY)); + return -1; + } pCtx->count++; } @@ -262,16 +261,16 @@ static int ttlMgrConvert(TTB *pOldTtlIdx, TTB *pNewTtlIdx, void *pMeta) { SConvertData cvData = {.pNewTtlIdx = pNewTtlIdx, .pMeta = meta}; - int ret = tdbTbTraversal(pOldTtlIdx, &cvData, ttlMgrConvertOneEntry); - if (ret < 0) { - metaError("failed to convert since %s", tstrerror(terrno)); + int code = TSDB_CODE_SUCCESS; + if ((code = tdbTbTraversal(pOldTtlIdx, &cvData, ttlMgrConvertOneEntry)) != TSDB_CODE_SUCCESS) { + metaError("failed to convert since %s", tstrerror(code)); } metaInfo("ttlMgr convert end."); - return ret; + TAOS_RETURN(code); } -int ttlMgrInsertTtl(STtlManger *pTtlMgr, const STtlUpdTtlCtx *updCtx) { +int32_t ttlMgrInsertTtl(STtlManger *pTtlMgr, const STtlUpdTtlCtx *updCtx) { if (updCtx->ttlDays == 0) return 0; STtlCacheEntry cacheEntry = {.ttlDays = updCtx->ttlDays, @@ -280,56 +279,55 @@ int ttlMgrInsertTtl(STtlManger *pTtlMgr, const STtlUpdTtlCtx *updCtx) { .changeTimeMsDirty = updCtx->changeTimeMs}; STtlDirtyEntry dirtryEntry = {.type = ENTRY_TYPE_UPSERT}; - int ret = taosHashPut(pTtlMgr->pTtlCache, &updCtx->uid, sizeof(updCtx->uid), &cacheEntry, sizeof(cacheEntry)); - if (ret < 0) { - metaError("%s, ttlMgr insert failed to update cache since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + int32_t code = taosHashPut(pTtlMgr->pTtlCache, &updCtx->uid, sizeof(updCtx->uid), &cacheEntry, sizeof(cacheEntry)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr insert failed to update cache since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } - ret = taosHashPut(pTtlMgr->pDirtyUids, &updCtx->uid, sizeof(updCtx->uid), &dirtryEntry, sizeof(dirtryEntry)); - if (ret < 0) { - metaError("%s, ttlMgr insert failed to update dirty uids since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + code = taosHashPut(pTtlMgr->pDirtyUids, &updCtx->uid, sizeof(updCtx->uid), &dirtryEntry, sizeof(dirtryEntry)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr insert failed to update dirty uids since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } if (ttlMgrNeedFlush(pTtlMgr)) { - ttlMgrFlush(pTtlMgr, updCtx->pTxn); + (void)ttlMgrFlush(pTtlMgr, updCtx->pTxn); } - ret = 0; + code = TSDB_CODE_SUCCESS; _out: metaTrace("%s, ttl mgr insert ttl, uid: %" PRId64 ", ctime: %" PRId64 ", ttlDays: %" PRId64, pTtlMgr->logPrefix, updCtx->uid, updCtx->changeTimeMs, updCtx->ttlDays); - return ret; + TAOS_RETURN(code); } -int ttlMgrDeleteTtl(STtlManger *pTtlMgr, const STtlDelTtlCtx *delCtx) { +int32_t ttlMgrDeleteTtl(STtlManger *pTtlMgr, const STtlDelTtlCtx *delCtx) { if (delCtx->ttlDays == 0) return 0; STtlDirtyEntry dirtryEntry = {.type = ENTRY_TYPE_DELETE}; - int ret = taosHashPut(pTtlMgr->pDirtyUids, &delCtx->uid, sizeof(delCtx->uid), &dirtryEntry, sizeof(dirtryEntry)); - if (ret < 0) { - metaError("%s, ttlMgr del failed to update dirty uids since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + int32_t code = taosHashPut(pTtlMgr->pDirtyUids, &delCtx->uid, sizeof(delCtx->uid), &dirtryEntry, sizeof(dirtryEntry)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr del failed to update dirty uids since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } if (ttlMgrNeedFlush(pTtlMgr)) { - ttlMgrFlush(pTtlMgr, delCtx->pTxn); + (void)ttlMgrFlush(pTtlMgr, delCtx->pTxn); } - ret = 0; + code = TSDB_CODE_SUCCESS; _out: metaTrace("%s, ttl mgr delete ttl, uid: %" PRId64, pTtlMgr->logPrefix, delCtx->uid); - - return ret; + TAOS_RETURN(code); } -int ttlMgrUpdateChangeTime(STtlManger *pTtlMgr, const STtlUpdCtimeCtx *pUpdCtimeCtx) { - int ret = 0; +int32_t ttlMgrUpdateChangeTime(STtlManger *pTtlMgr, const STtlUpdCtimeCtx *pUpdCtimeCtx) { + int32_t code = TSDB_CODE_SUCCESS; STtlCacheEntry *oldData = taosHashGet(pTtlMgr->pTtlCache, &pUpdCtimeCtx->uid, sizeof(pUpdCtimeCtx->uid)); if (oldData == NULL) { @@ -342,43 +340,39 @@ int ttlMgrUpdateChangeTime(STtlManger *pTtlMgr, const STtlUpdCtimeCtx *pUpdCtime .changeTimeMsDirty = pUpdCtimeCtx->changeTimeMs}; STtlDirtyEntry dirtryEntry = {.type = ENTRY_TYPE_UPSERT}; - ret = taosHashPut(pTtlMgr->pTtlCache, &pUpdCtimeCtx->uid, sizeof(pUpdCtimeCtx->uid), &cacheEntry, sizeof(cacheEntry)); - if (ret < 0) { - metaError("%s, ttlMgr update ctime failed to update cache since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + code = taosHashPut(pTtlMgr->pTtlCache, &pUpdCtimeCtx->uid, sizeof(pUpdCtimeCtx->uid), &cacheEntry, sizeof(cacheEntry)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr update ctime failed to update cache since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } - ret = taosHashPut(pTtlMgr->pDirtyUids, &pUpdCtimeCtx->uid, sizeof(pUpdCtimeCtx->uid), &dirtryEntry, - sizeof(dirtryEntry)); - if (ret < 0) { + code = taosHashPut(pTtlMgr->pDirtyUids, &pUpdCtimeCtx->uid, sizeof(pUpdCtimeCtx->uid), &dirtryEntry, + sizeof(dirtryEntry)); + if (TSDB_CODE_SUCCESS != code) { metaError("%s, ttlMgr update ctime failed to update dirty uids since %s", pTtlMgr->logPrefix, - tstrerror(terrno)); + tstrerror(code)); goto _out; } if (ttlMgrNeedFlush(pTtlMgr)) { - ttlMgrFlush(pTtlMgr, pUpdCtimeCtx->pTxn); + (void)ttlMgrFlush(pTtlMgr, pUpdCtimeCtx->pTxn); } - ret = 0; + code = TSDB_CODE_SUCCESS; _out: metaTrace("%s, ttl mgr update ctime, uid: %" PRId64 ", ctime: %" PRId64, pTtlMgr->logPrefix, pUpdCtimeCtx->uid, pUpdCtimeCtx->changeTimeMs); - - return ret; + TAOS_RETURN(code); } -int ttlMgrFindExpired(STtlManger *pTtlMgr, int64_t timePointMs, SArray *pTbUids, int32_t ttlDropMaxCount) { - int ret = -1; +int32_t ttlMgrFindExpired(STtlManger *pTtlMgr, int64_t timePointMs, SArray *pTbUids, int32_t ttlDropMaxCount) { + int32_t code = TSDB_CODE_SUCCESS; STtlIdxKeyV1 ttlKey = {.deleteTimeMs = timePointMs, .uid = INT64_MAX}; STtlExpiredCtx expiredCtx = { .ttlDropMaxCount = ttlDropMaxCount, .count = 0, .expiredKey = ttlKey, .pTbUids = pTbUids}; - ret = tdbTbTraversal(pTtlMgr->pTtlIdx, &expiredCtx, ttlMgrFindExpiredOneEntry); - if (ret) { - goto _out; - } + TAOS_CHECK_GOTO(tdbTbTraversal(pTtlMgr->pTtlIdx, &expiredCtx, ttlMgrFindExpiredOneEntry), NULL, _out); size_t vIdx = 0; for (size_t i = 0; i < pTbUids->size; i++) { @@ -393,20 +387,20 @@ int ttlMgrFindExpired(STtlManger *pTtlMgr, int64_t timePointMs, SArray *pTbUids, taosArrayPopTailBatch(pTbUids, pTbUids->size - vIdx); _out: - return ret; + TAOS_RETURN(code); } static bool ttlMgrNeedFlush(STtlManger *pTtlMgr) { return pTtlMgr->flushThreshold > 0 && taosHashGetSize(pTtlMgr->pDirtyUids) > pTtlMgr->flushThreshold; } -int ttlMgrFlush(STtlManger *pTtlMgr, TXN *pTxn) { +int32_t ttlMgrFlush(STtlManger *pTtlMgr, TXN *pTxn) { int64_t startNs = taosGetTimestampNs(); int64_t endNs = startNs; metaTrace("%s, ttl mgr flush start. dirty uids:%d", pTtlMgr->logPrefix, taosHashGetSize(pTtlMgr->pDirtyUids)); - int ret = -1; + int32_t code = TSDB_CODE_SUCCESS; void *pIter = taosHashIterate(pTtlMgr->pDirtyUids, NULL); while (pIter != NULL) { @@ -415,8 +409,8 @@ int ttlMgrFlush(STtlManger *pTtlMgr, TXN *pTxn) { STtlCacheEntry *cacheEntry = taosHashGet(pTtlMgr->pTtlCache, pUid, sizeof(*pUid)); if (cacheEntry == NULL) { - metaError("%s, ttlMgr flush failed to get ttl cache since %s, uid: %" PRId64 ", type: %d", pTtlMgr->logPrefix, - tstrerror(terrno), *pUid, pEntry->type); + metaError("%s, ttlMgr flush failed to get ttl cache, uid: %" PRId64 ", type: %d", pTtlMgr->logPrefix, *pUid, + pEntry->type); continue; } @@ -428,26 +422,26 @@ int ttlMgrFlush(STtlManger *pTtlMgr, TXN *pTxn) { if (pEntry->type == ENTRY_TYPE_UPSERT) { // delete old key & upsert new key - tdbTbDelete(pTtlMgr->pTtlIdx, &ttlKey, sizeof(ttlKey), pTxn); // maybe first insert, ignore error - ret = tdbTbUpsert(pTtlMgr->pTtlIdx, &ttlKeyDirty, sizeof(ttlKeyDirty), &cacheEntry->ttlDaysDirty, + (void)tdbTbDelete(pTtlMgr->pTtlIdx, &ttlKey, sizeof(ttlKey), pTxn); // maybe first insert, ignore error + code = tdbTbUpsert(pTtlMgr->pTtlIdx, &ttlKeyDirty, sizeof(ttlKeyDirty), &cacheEntry->ttlDaysDirty, sizeof(cacheEntry->ttlDaysDirty), pTxn); - if (ret < 0) { - metaError("%s, ttlMgr flush failed to upsert since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr flush failed to upsert since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } cacheEntry->ttlDays = cacheEntry->ttlDaysDirty; cacheEntry->changeTimeMs = cacheEntry->changeTimeMsDirty; } else if (pEntry->type == ENTRY_TYPE_DELETE) { - ret = tdbTbDelete(pTtlMgr->pTtlIdx, &ttlKey, sizeof(ttlKey), pTxn); - if (ret < 0) { - metaError("%s, ttlMgr flush failed to delete since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + code = tdbTbDelete(pTtlMgr->pTtlIdx, &ttlKey, sizeof(ttlKey), pTxn); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr flush failed to delete since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } - ret = taosHashRemove(pTtlMgr->pTtlCache, pUid, sizeof(*pUid)); - if (ret < 0) { - metaError("%s, ttlMgr flush failed to remove cache since %s", pTtlMgr->logPrefix, tstrerror(terrno)); + code = taosHashRemove(pTtlMgr->pTtlCache, pUid, sizeof(*pUid)); + if (TSDB_CODE_SUCCESS != code) { + metaError("%s, ttlMgr flush failed to remove cache since %s", pTtlMgr->logPrefix, tstrerror(code)); goto _out; } } else { @@ -457,16 +451,16 @@ int ttlMgrFlush(STtlManger *pTtlMgr, TXN *pTxn) { void *pIterTmp = pIter; pIter = taosHashIterate(pTtlMgr->pDirtyUids, pIterTmp); - taosHashRemove(pTtlMgr->pDirtyUids, pUid, sizeof(tb_uid_t)); + (void)taosHashRemove(pTtlMgr->pDirtyUids, pUid, sizeof(tb_uid_t)); } taosHashClear(pTtlMgr->pDirtyUids); - ret = 0; + code = TSDB_CODE_SUCCESS; _out: endNs = taosGetTimestampNs(); metaTrace("%s, ttl mgr flush end, time consumed: %" PRId64 " ns", pTtlMgr->logPrefix, endNs - startNs); - return ret; + TAOS_RETURN(code); } diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 1726d8696b..7b785e0844 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -33,7 +33,7 @@ static int32_t tsdbOpenBCache(STsdb *pTsdb) { taosLRUCacheSetStrictCapacity(pCache, false); - taosThreadMutexInit(&pTsdb->bMutex, NULL); + (void)taosThreadMutexInit(&pTsdb->bMutex, NULL); pTsdb->bCache = pCache; @@ -57,7 +57,7 @@ static void tsdbCloseBCache(STsdb *pTsdb) { taosLRUCacheCleanup(pCache); - taosThreadMutexDestroy(&pTsdb->bMutex); + (void)taosThreadMutexDestroy(&pTsdb->bMutex); } } @@ -72,7 +72,7 @@ static int32_t tsdbOpenPgCache(STsdb *pTsdb) { taosLRUCacheSetStrictCapacity(pCache, false); - taosThreadMutexInit(&pTsdb->pgMutex, NULL); + (void)taosThreadMutexInit(&pTsdb->pgMutex, NULL); pTsdb->pgCache = pCache; @@ -95,7 +95,7 @@ static void tsdbClosePgCache(STsdb *pTsdb) { taosLRUCacheCleanup(pCache); - taosThreadMutexDestroy(&pTsdb->bMutex); + (void)taosThreadMutexDestroy(&pTsdb->bMutex); } } @@ -225,7 +225,7 @@ static int32_t tsdbOpenRocksCache(STsdb *pTsdb) { pTsdb->rCache.flushoptions = flushoptions; pTsdb->rCache.db = db; - taosThreadMutexInit(&pTsdb->rCache.rMutex, NULL); + (void)taosThreadMutexInit(&pTsdb->rCache.rMutex, NULL); pTsdb->rCache.pTSchema = NULL; @@ -258,7 +258,7 @@ static void tsdbCloseRocksCache(STsdb *pTsdb) { rocksdb_block_based_options_destroy(pTsdb->rCache.tableoptions); rocksdb_cache_destroy(pTsdb->rCache.blockcache); rocksdb_comparator_destroy(pTsdb->rCache.my_comparator); - taosThreadMutexDestroy(&pTsdb->rCache.rMutex); + (void)taosThreadMutexDestroy(&pTsdb->rCache.rMutex); taosMemoryFree(pTsdb->rCache.pTSchema); } @@ -266,12 +266,12 @@ static void rocksMayWrite(STsdb *pTsdb, bool force, bool read, bool lock) { rocksdb_writebatch_t *wb = pTsdb->rCache.writebatch; if (read) { if (lock) { - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); } wb = pTsdb->rCache.rwritebatch; } else { if (lock) { - taosThreadMutexLock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexLock(&pTsdb->rCache.rMutex); } } @@ -292,9 +292,9 @@ static void rocksMayWrite(STsdb *pTsdb, bool force, bool read, bool lock) { if (lock) { if (read) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); } else { - taosThreadMutexUnlock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexUnlock(&pTsdb->rCache.rMutex); } } } @@ -486,7 +486,7 @@ static void tsdbCachePutBatch(SLastCol *pLastCol, const void *key, size_t klen, tsdbError("tsdb/cache: vgId:%d, serialize failed since %s.", TD_VID(pTsdb->pVnode), tstrerror(code)); } - taosThreadMutexLock(&rCache->rMutex); + (void)taosThreadMutexLock(&rCache->rMutex); rocksdb_writebatch_put(wb, (char *)key, klen, rocks_value, vlen); @@ -507,7 +507,7 @@ static void tsdbCachePutBatch(SLastCol *pLastCol, const void *key, size_t klen, state->flush_count = 0; } - taosThreadMutexUnlock(&rCache->rMutex); + (void)taosThreadMutexUnlock(&rCache->rMutex); } int tsdbCacheFlushDirty(const void *key, size_t klen, void *value, void *ud) { @@ -529,7 +529,7 @@ int32_t tsdbCacheCommit(STsdb *pTsdb) { SLRUCache *pCache = pTsdb->lruCache; rocksdb_writebatch_t *wb = pTsdb->rCache.writebatch; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); taosLRUCacheApply(pCache, tsdbCacheFlushDirty, &pTsdb->flushState); @@ -537,7 +537,7 @@ int32_t tsdbCacheCommit(STsdb *pTsdb) { rocksMayWrite(pTsdb, true, true, false); rocksdb_flush(pTsdb->rCache.db, pTsdb->rCache.flushoptions, &err); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); if (NULL != err) { tsdbError("vgId:%d, %s failed at line %d since %s", TD_VID(pTsdb->pVnode), __func__, __LINE__, err); @@ -778,7 +778,7 @@ static int32_t tsdbCacheDropTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, int32_t tsdbCacheNewTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWrapper *pSchemaRow) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); if (suid < 0) { for (int i = 0; i < pSchemaRow->nCols; ++i) { @@ -792,7 +792,7 @@ int32_t tsdbCacheNewTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWrap STSchema *pTSchema = NULL; code = metaGetTbTSchemaEx(pTsdb->pVnode->pMeta, suid, uid, -1, &pTSchema); if (code != TSDB_CODE_SUCCESS) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -808,7 +808,7 @@ int32_t tsdbCacheNewTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWrap taosMemoryFree(pTSchema); } - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -816,7 +816,7 @@ int32_t tsdbCacheNewTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWrap int32_t tsdbCacheDropTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWrapper *pSchemaRow) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); (void)tsdbCacheCommitNoLock(pTsdb); @@ -836,7 +836,7 @@ int32_t tsdbCacheDropTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWra STSchema *pTSchema = NULL; code = metaGetTbTSchemaEx(pTsdb->pVnode->pMeta, suid, uid, -1, &pTSchema); if (code != TSDB_CODE_SUCCESS) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -858,7 +858,7 @@ int32_t tsdbCacheDropTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWra rocksMayWrite(pTsdb, true, false, false); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -866,14 +866,14 @@ int32_t tsdbCacheDropTable(STsdb *pTsdb, tb_uid_t uid, tb_uid_t suid, SSchemaWra int32_t tsdbCacheDropSubTables(STsdb *pTsdb, SArray *uids, tb_uid_t suid) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); (void)tsdbCacheCommitNoLock(pTsdb); STSchema *pTSchema = NULL; code = metaGetTbTSchemaEx(pTsdb->pVnode->pMeta, suid, suid, -1, &pTSchema); if (code != TSDB_CODE_SUCCESS) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -899,7 +899,7 @@ int32_t tsdbCacheDropSubTables(STsdb *pTsdb, SArray *uids, tb_uid_t suid) { rocksMayWrite(pTsdb, true, false, false); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -907,13 +907,13 @@ int32_t tsdbCacheDropSubTables(STsdb *pTsdb, SArray *uids, tb_uid_t suid) { int32_t tsdbCacheNewNTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, int8_t col_type) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); (void)tsdbCacheNewTableColumn(pTsdb, uid, cid, col_type, 0); (void)tsdbCacheNewTableColumn(pTsdb, uid, cid, col_type, 1); // rocksMayWrite(pTsdb, true, false, false); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); //(void)tsdbCacheCommit(pTsdb); TAOS_RETURN(code); @@ -922,7 +922,7 @@ int32_t tsdbCacheNewNTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, int8_t int32_t tsdbCacheDropNTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, bool hasPrimayKey) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); (void)tsdbCacheCommitNoLock(pTsdb); @@ -930,7 +930,7 @@ int32_t tsdbCacheDropNTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, bool h rocksMayWrite(pTsdb, true, false, true); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -938,7 +938,7 @@ int32_t tsdbCacheDropNTableColumn(STsdb *pTsdb, int64_t uid, int16_t cid, bool h int32_t tsdbCacheNewSTableColumn(STsdb *pTsdb, SArray *uids, int16_t cid, int8_t col_type) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); for (int i = 0; i < TARRAY_SIZE(uids); ++i) { tb_uid_t uid = ((tb_uid_t *)TARRAY_DATA(uids))[i]; @@ -948,7 +948,7 @@ int32_t tsdbCacheNewSTableColumn(STsdb *pTsdb, SArray *uids, int16_t cid, int8_t } // rocksMayWrite(pTsdb, true, false, false); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); //(void)tsdbCacheCommit(pTsdb); TAOS_RETURN(code); @@ -957,7 +957,7 @@ int32_t tsdbCacheNewSTableColumn(STsdb *pTsdb, SArray *uids, int16_t cid, int8_t int32_t tsdbCacheDropSTableColumn(STsdb *pTsdb, SArray *uids, int16_t cid, bool hasPrimayKey) { int32_t code = 0; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); (void)tsdbCacheCommitNoLock(pTsdb); @@ -969,7 +969,7 @@ int32_t tsdbCacheDropSTableColumn(STsdb *pTsdb, SArray *uids, int16_t cid, bool rocksMayWrite(pTsdb, true, false, true); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } @@ -1045,7 +1045,7 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray SArray *remainCols = NULL; SLRUCache *pCache = pTsdb->lruCache; - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); for (int i = 0; i < num_keys; ++i) { SLastUpdateCtx *updCtx = (SLastUpdateCtx *)taosArrayGet(updCtxArray, i); @@ -1088,7 +1088,7 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray keys_list_sizes = taosMemoryCalloc(num_keys, sizeof(size_t)); if (!keys_list || !keys_list_sizes) { taosMemoryFree(keys_list); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } for (int i = 0; i < num_keys; ++i) { @@ -1105,7 +1105,7 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray taosMemoryFree(keys_list_sizes); taosMemoryFree(values_list); taosMemoryFree(values_list_sizes); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } rocksdb_multi_get(pTsdb->rCache.db, pTsdb->rCache.readoptions, num_keys, (const char *const *)keys_list, @@ -1149,11 +1149,11 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray tsdbError("tsdb/cache: vgId:%d, serialize failed since %s.", TD_VID(pTsdb->pVnode), tstrerror(code)); } - taosThreadMutexLock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexLock(&pTsdb->rCache.rMutex); rocksdb_writebatch_put(wb, (char *)&idxKey->key, ROCKS_KEY_LEN, value, vlen); - taosThreadMutexUnlock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexUnlock(&pTsdb->rCache.rMutex); pLastCol = &lastColTmp; SLastCol *pTmpLastCol = taosMemoryCalloc(1, sizeof(SLastCol)); @@ -1164,7 +1164,7 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray taosMemoryFree(values_list_sizes); taosArrayDestroy(remainCols); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } *pTmpLastCol = *pLastCol; @@ -1208,7 +1208,7 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray } _exit: - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); if (code) { tsdbError("tsdb/cache: vgId:%d, update failed at line %d since %s.", TD_VID(pTsdb->pVnode), lino, tstrerror(code)); @@ -1699,7 +1699,7 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache } if (remainCols && TARRAY_SIZE(remainCols) > 0) { - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); for (int i = 0; i < TARRAY_SIZE(remainCols);) { SIdxKey *idxKey = &((SIdxKey *)TARRAY_DATA(remainCols))[i]; LRUHandle *h = taosLRUCacheLookup(pCache, &idxKey->key, ROCKS_KEY_LEN); @@ -1710,13 +1710,13 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache for (int8_t j = 0; j < lastCol.rowKey.numOfPKs; j++) { code = reallocVarDataVal(&lastCol.rowKey.pks[j]); if (code) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } } code = reallocVarData(&lastCol.colVal); if (code) { - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); TAOS_RETURN(code); } taosArraySet(pLastArray, idxKey->idx, &lastCol); @@ -1732,7 +1732,7 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache // tsdbTrace("tsdb/cache: vgId: %d, load %" PRId64 " from rocks", TD_VID(pTsdb->pVnode), uid); code = tsdbCacheLoadFromRocks(pTsdb, uid, pLastArray, remainCols, pr, ltype); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); if (remainCols) { taosArrayDestroy(remainCols); @@ -1792,13 +1792,13 @@ int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKE (void)tsdbCacheCommit(pTsdb); - taosThreadMutexLock(&pTsdb->lruMutex); + (void)taosThreadMutexLock(&pTsdb->lruMutex); - taosThreadMutexLock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexLock(&pTsdb->rCache.rMutex); // rocksMayWrite(pTsdb, true, false, false); rocksdb_multi_get(pTsdb->rCache.db, pTsdb->rCache.readoptions, num_keys * 2, (const char *const *)keys_list, keys_list_sizes, values_list, values_list_sizes, errs); - taosThreadMutexUnlock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexUnlock(&pTsdb->rCache.rMutex); for (int i = 0; i < num_keys * 2; ++i) { if (errs[i]) { @@ -1814,7 +1814,7 @@ int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKE if (code) { tsdbError("tsdb/cache: vgId:%d, deserialize failed since %s.", TD_VID(pTsdb->pVnode), tstrerror(code)); } - taosThreadMutexLock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexLock(&pTsdb->rCache.rMutex); if (NULL != pLastCol && (pLastCol->rowKey.ts <= eKey && pLastCol->rowKey.ts >= sKey)) { rocksdb_writebatch_delete(wb, keys_list[i], klen); } @@ -1828,7 +1828,7 @@ int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKE if (NULL != pLastCol && (pLastCol->rowKey.ts <= eKey && pLastCol->rowKey.ts >= sKey)) { rocksdb_writebatch_delete(wb, keys_list[num_keys + i], klen); } - taosThreadMutexUnlock(&pTsdb->rCache.rMutex); + (void)taosThreadMutexUnlock(&pTsdb->rCache.rMutex); taosMemoryFreeClear(pLastCol); rocksdb_free(values_list[i]); @@ -1879,7 +1879,7 @@ int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKE rocksMayWrite(pTsdb, true, false, true); - taosThreadMutexUnlock(&pTsdb->lruMutex); + (void)taosThreadMutexUnlock(&pTsdb->lruMutex); _exit: taosMemoryFree(pTSchema); @@ -1904,7 +1904,7 @@ int32_t tsdbOpenCache(STsdb *pTsdb) { taosLRUCacheSetStrictCapacity(pCache, false); - taosThreadMutexInit(&pTsdb->lruMutex, NULL); + (void)taosThreadMutexInit(&pTsdb->lruMutex, NULL); pTsdb->flushState.pTsdb = pTsdb; pTsdb->flushState.flush_count = 0; @@ -1926,7 +1926,7 @@ void tsdbCloseCache(STsdb *pTsdb) { taosLRUCacheCleanup(pCache); - taosThreadMutexDestroy(&pTsdb->lruMutex); + (void)taosThreadMutexDestroy(&pTsdb->lruMutex); } tsdbCloseBCache(pTsdb); @@ -3365,7 +3365,7 @@ int32_t tsdbCacheGetBlockS3(SLRUCache *pCache, STsdbFD *pFD, LRUHandle **handle) LRUHandle *h = taosLRUCacheLookup(pCache, key, keyLen); if (!h) { STsdb *pTsdb = pFD->pTsdb; - taosThreadMutexLock(&pTsdb->bMutex); + (void)taosThreadMutexLock(&pTsdb->bMutex); h = taosLRUCacheLookup(pCache, key, keyLen); if (!h) { @@ -3373,7 +3373,7 @@ int32_t tsdbCacheGetBlockS3(SLRUCache *pCache, STsdbFD *pFD, LRUHandle **handle) code = tsdbCacheLoadBlockS3(pFD, &pBlock); // if table's empty or error, return code of -1 if (code != TSDB_CODE_SUCCESS || pBlock == NULL) { - taosThreadMutexUnlock(&pTsdb->bMutex); + (void)taosThreadMutexUnlock(&pTsdb->bMutex); *handle = NULL; if (code == TSDB_CODE_SUCCESS && !pBlock) { @@ -3392,7 +3392,7 @@ int32_t tsdbCacheGetBlockS3(SLRUCache *pCache, STsdbFD *pFD, LRUHandle **handle) } } - taosThreadMutexUnlock(&pTsdb->bMutex); + (void)taosThreadMutexUnlock(&pTsdb->bMutex); } *handle = h; @@ -3418,7 +3418,7 @@ int32_t tsdbCacheSetPageS3(SLRUCache *pCache, STsdbFD *pFD, int64_t pgno, uint8_ LRUHandle *handle = NULL; getBCacheKey(pFD->fid, pFD->cid, pgno, key, &keyLen); - taosThreadMutexLock(&pFD->pTsdb->pgMutex); + (void)taosThreadMutexLock(&pFD->pTsdb->pgMutex); handle = taosLRUCacheLookup(pFD->pTsdb->pgCache, key, keyLen); if (!handle) { size_t charge = pFD->szPage; @@ -3436,7 +3436,7 @@ int32_t tsdbCacheSetPageS3(SLRUCache *pCache, STsdbFD *pFD, int64_t pgno, uint8_ // code = TSDB_CODE_OUT_OF_MEMORY; } } - taosThreadMutexUnlock(&pFD->pTsdb->pgMutex); + (void)taosThreadMutexUnlock(&pFD->pTsdb->pgMutex); tsdbCacheRelease(pFD->pTsdb->pgCache, handle); diff --git a/source/libs/command/src/command.c b/source/libs/command/src/command.c index bb5766feaa..2811402ea1 100644 --- a/source/libs/command/src/command.c +++ b/source/libs/command/src/command.c @@ -839,9 +839,7 @@ static int32_t execAlterLocal(SAlterLocalStmt* pStmt) { return terrno; } - if (taosCfgDynamicOptions(tsCfg, pStmt->config, false)) { - return terrno; - } + TAOS_CHECK_RETURN(taosCfgDynamicOptions(tsCfg, pStmt->config, false)); _return: diff --git a/source/libs/geometry/src/geosWrapper.c b/source/libs/geometry/src/geosWrapper.c index 2142b3d62d..6ca8a39bb5 100644 --- a/source/libs/geometry/src/geosWrapper.c +++ b/source/libs/geometry/src/geosWrapper.c @@ -29,7 +29,7 @@ void geosFreeBuffer(void *buffer) { void geosErrMsgeHandler(const char *errMsg, void *userData) { char *targetErrMsg = userData; - snprintf(targetErrMsg, 512, "%s", errMsg); + (void)snprintf(targetErrMsg, 512, "%s", errMsg); } int32_t initCtxMakePoint() { @@ -94,7 +94,7 @@ static int32_t initWktRegex(pcre2_code **ppRegex, pcre2_match_data **ppMatchData return TSDB_CODE_OUT_OF_MEMORY; } - sprintf( + (void)sprintf( wktPatternWithSpace, "^( *)point( *)z?m?( *)((empty)|(\\(( *)(([-+]?[0-9]+\\.?[0-9]*)|([-+]?[0-9]*\\.?[0-9]+))(e[-+]?[0-9]+)?(( " "*)(([-+]?[0-9]+\\.?[0-9]*)|([-+]?[0-9]*\\.?[0-9]+))(e[-+]?[0-9]+)?){1,3}( *)\\)))|linestring( *)z?m?( " @@ -264,7 +264,7 @@ int32_t doAsText(const unsigned char *inputGeom, size_t size, char **outputWKT) SGeosContext *geosCtx = getThreadLocalGeosCtx(); GEOSGeometry *geom = NULL; - unsigned char *wkt = NULL; + char *wkt = NULL; geom = GEOSWKBReader_read_r(geosCtx->handle, geosCtx->WKBReader, inputGeom, size); if (geom == NULL) { diff --git a/source/libs/index/inc/indexFstFile.h b/source/libs/index/inc/indexFstFile.h index d15141f79a..b1ff4fee34 100644 --- a/source/libs/index/inc/indexFstFile.h +++ b/source/libs/index/inc/indexFstFile.h @@ -78,11 +78,11 @@ typedef struct IdxFstFile { CheckSummer summer; } IdxFstFile; -int idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len); +int32_t idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len); -int idxFileRead(IdxFstFile* write, uint8_t* buf, uint32_t len); +int32_t idxFileRead(IdxFstFile* write, uint8_t* buf, uint32_t len); -int idxFileFlush(IdxFstFile* write); +int32_t idxFileFlush(IdxFstFile* write); uint32_t idxFileMaskedCheckSum(IdxFstFile* write); diff --git a/source/libs/index/inc/indexTfile.h b/source/libs/index/inc/indexTfile.h index 7425b13ce9..51d3cc0e7b 100644 --- a/source/libs/index/inc/indexTfile.h +++ b/source/libs/index/inc/indexTfile.h @@ -99,23 +99,24 @@ typedef struct TFileReaderOpt { TFileCache* tfileCacheCreate(SIndex* idx, const char* path); void tfileCacheDestroy(TFileCache* tcache); TFileReader* tfileCacheGet(TFileCache* tcache, ICacheKey* key); -void tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader); +int32_t tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader); TFileReader* tfileGetReaderByCol(IndexTFile* tf, uint64_t suid, char* colName); -TFileReader* tfileReaderOpen(SIndex* idx, uint64_t suid, int64_t version, const char* colName); -TFileReader* tfileReaderCreate(IFileCtx* ctx); -void tfileReaderDestroy(TFileReader* reader); -int tfileReaderSearch(TFileReader* reader, SIndexTermQuery* query, SIdxTRslt* tr); -void tfileReaderRef(TFileReader* reader); -void tfileReaderUnRef(TFileReader* reader); +int32_t tfileReaderOpen(SIndex* idx, uint64_t suid, int64_t version, const char* colName, TFileReader** pReader); +int32_t tfileReaderCreate(IFileCtx* ctx, TFileReader** pReader); +void tfileReaderDestroy(TFileReader* reader); +int tfileReaderSearch(TFileReader* reader, SIndexTermQuery* query, SIdxTRslt* tr); +void tfileReaderRef(TFileReader* reader); +void tfileReaderUnRef(TFileReader* reader); -TFileWriter* tfileWriterOpen(char* path, uint64_t suid, int64_t version, const char* colName, uint8_t type); -void tfileWriterClose(TFileWriter* tw); -TFileWriter* tfileWriterCreate(IFileCtx* ctx, TFileHeader* header); -void tfileWriterDestroy(TFileWriter* tw); -int tfileWriterPut(TFileWriter* tw, void* data, bool order); -int tfileWriterFinish(TFileWriter* tw); +int32_t tfileWriterOpen(char* path, uint64_t suid, int64_t version, const char* colName, uint8_t type, + TFileWriter** pWriter); +void tfileWriterClose(TFileWriter* tw); +int32_t tfileWriterCreate(IFileCtx* ctx, TFileHeader* header, TFileWriter** pWriter); +void tfileWriterDestroy(TFileWriter* tw); +int tfileWriterPut(TFileWriter* tw, void* data, bool order); +int tfileWriterFinish(TFileWriter* tw); // IndexTFile* idxTFileCreate(SIndex* idx, const char* path); diff --git a/source/libs/index/src/index.c b/source/libs/index/src/index.c index d7e5d87e80..fad04798a8 100644 --- a/source/libs/index/src/index.c +++ b/source/libs/index/src/index.c @@ -86,10 +86,10 @@ static TdThreadOnce isInit = PTHREAD_ONCE_INIT; // static void indexInit(); static int idxTermSearch(SIndex* sIdx, SIndexTermQuery* term, SArray** result); -static void idxInterRsltDestroy(SArray* results); -static int idxMergeFinalResults(SArray* in, EIndexOperatorType oType, SArray* out); +static void idxInterRsltDestroy(SArray* results); +static int32_t idxMergeFinalResults(SArray* in, EIndexOperatorType oType, SArray* out); -static int idxGenTFile(SIndex* index, IndexCache* cache, SArray* batch); +static int32_t idxGenTFile(SIndex* index, IndexCache* cache, SArray* batch); // merge cache and tfile by opera type static void idxMergeCacheAndTFile(SArray* result, IterateValue* icache, IterateValue* iTfv, SIdxTRslt* helper); @@ -106,30 +106,37 @@ static void indexWait(void* idx) { tsem_wait(&pIdx->sem); } -int indexOpen(SIndexOpts* opts, const char* path, SIndex** index) { - int ret = TSDB_CODE_SUCCESS; +int32_t indexOpen(SIndexOpts* opts, const char* path, SIndex** index) { taosThreadOnce(&isInit, indexEnvInit); + + int code = TSDB_CODE_SUCCESS; SIndex* idx = taosMemoryCalloc(1, sizeof(SIndex)); if (idx == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, END); } idx->lru = taosLRUCacheInit(opts->cacheSize, -1, .5); if (idx->lru == NULL) { - ret = TSDB_CODE_OUT_OF_MEMORY; - goto END; + TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, END); } taosLRUCacheSetStrictCapacity(idx->lru, false); idx->tindex = idxTFileCreate(idx, path); if (idx->tindex == NULL) { - ret = TSDB_CODE_OUT_OF_MEMORY; - goto END; + TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, END); } idx->colObj = taosHashInit(8, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK); + if (idx->colObj == NULL) { + TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, END); + } + idx->version = 1; idx->path = taosStrdup(path); + if (idx->path == NULL) { + TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, END); + } + taosThreadMutexInit(&idx->mtx, NULL); tsem_init(&idx->sem, 0, 0); @@ -138,17 +145,18 @@ int indexOpen(SIndexOpts* opts, const char* path, SIndex** index) { idxAcquireRef(idx->refId); *index = idx; - return ret; + return code; END: if (idx != NULL) { indexDestroy(idx); } *index = NULL; - return ret; + return code; } void indexDestroy(void* handle) { + if (handle == NULL) return; SIndex* idx = handle; taosThreadMutexDestroy(&idx->mtx); tsem_destroy(&idx->sem); @@ -202,7 +210,7 @@ void idxReleaseRef(int64_t ref) { taosReleaseRef(indexRefMgt, ref); } -int indexPut(SIndex* index, SIndexMultiTerm* fVals, uint64_t uid) { +int32_t indexPut(SIndex* index, SIndexMultiTerm* fVals, uint64_t uid) { // TODO(yihao): reduce the lock range taosThreadMutexLock(&index->mtx); for (int i = 0; i < taosArrayGetSize(fVals); i++) { @@ -239,7 +247,7 @@ int indexPut(SIndex* index, SIndexMultiTerm* fVals, uint64_t uid) { } return 0; } -int indexSearch(SIndex* index, SIndexMultiTermQuery* multiQuerys, SArray* result) { +int32_t indexSearch(SIndex* index, SIndexMultiTermQuery* multiQuerys, SArray* result) { EIndexOperatorType opera = multiQuerys->opera; // relation of querys SArray* iRslts = taosArrayInit(4, POINTER_BYTES); @@ -285,7 +293,7 @@ void indexMultiTermQueryDestroy(SIndexMultiTermQuery* pQuery) { taosArrayDestroy(pQuery->query); taosMemoryFree(pQuery); }; -int indexMultiTermQueryAdd(SIndexMultiTermQuery* pQuery, SIndexTerm* term, EIndexQueryType qType) { +int32_t indexMultiTermQueryAdd(SIndexMultiTermQuery* pQuery, SIndexTerm* term, EIndexQueryType qType) { SIndexTermQuery q = {.qType = qType, .term = term}; taosArrayPush(pQuery->query, &q); return 0; @@ -332,7 +340,7 @@ void indexTermDestroy(SIndexTerm* p) { SIndexMultiTerm* indexMultiTermCreate() { return taosArrayInit(4, sizeof(SIndexTerm*)); } -int indexMultiTermAdd(SIndexMultiTerm* terms, SIndexTerm* term) { +int32_t indexMultiTermAdd(SIndexMultiTerm* terms, SIndexTerm* term) { taosArrayPush(terms, &term); return 0; } @@ -392,7 +400,7 @@ bool indexJsonIsRebuild(SIndexJson* idx) { return ((SIdxStatus)atomic_load_8(&idx->status)) == kRebuild ? true : false; } -static int idxTermSearch(SIndex* sIdx, SIndexTermQuery* query, SArray** result) { +static int32_t idxTermSearch(SIndex* sIdx, SIndexTermQuery* query, SArray** result) { SIndexTerm* term = query->term; const char* colName = term->colName; int32_t nColName = term->nColName; @@ -404,6 +412,7 @@ static int idxTermSearch(SIndex* sIdx, SIndexTermQuery* query, SArray** result) ICacheKey key = { .suid = term->suid, .colName = term->colName, .nColName = strlen(term->colName), .colType = term->colType}; indexDebug("r suid:%" PRIu64 ", colName:%s, colType:%d", key.suid, key.colName, key.colType); + int32_t sz = idxSerialCacheKey(&key, buf); taosThreadMutexLock(&sIdx->mtx); @@ -412,7 +421,11 @@ static int idxTermSearch(SIndex* sIdx, SIndexTermQuery* query, SArray** result) taosThreadMutexUnlock(&sIdx->mtx); *result = taosArrayInit(4, sizeof(uint64_t)); + if (*result == NULL) { + return TSDB_CODE_OUT_OF_MEMORY; + } // TODO: iterator mem and tidex + STermValueType s = kTypeValue; int64_t st = taosGetTimestampUs(); @@ -445,7 +458,7 @@ static int idxTermSearch(SIndex* sIdx, SIndexTermQuery* query, SArray** result) return 0; END: idxTRsltDestroy(tr); - return -1; + return 0; } static void idxInterRsltDestroy(SArray* results) { if (results == NULL) { @@ -460,7 +473,7 @@ static void idxInterRsltDestroy(SArray* results) { taosArrayDestroy(results); } -static int idxMergeFinalResults(SArray* in, EIndexOperatorType oType, SArray* out) { +static int32_t idxMergeFinalResults(SArray* in, EIndexOperatorType oType, SArray* out) { // refactor, merge interResults into fResults by oType for (int i = 0; i < taosArrayGetSize(in); i++) { SArray* t = taosArrayGetP(in, i); @@ -527,9 +540,9 @@ static void idxDestroyFinalRslt(SArray* result) { taosArrayDestroy(result); } -int idxFlushCacheToTFile(SIndex* sIdx, void* cache, bool quit) { +int32_t idxFlushCacheToTFile(SIndex* sIdx, void* cache, bool quit) { if (sIdx == NULL) { - return -1; + return TSDB_CODE_INVALID_PTR; } indexInfo("suid %" PRIu64 " merge cache into tindex", sIdx->suid); @@ -537,8 +550,9 @@ int idxFlushCacheToTFile(SIndex* sIdx, void* cache, bool quit) { IndexCache* pCache = (IndexCache*)cache; - while (quit && atomic_load_32(&pCache->merging) == 1) - ; + do { + } while (quit && atomic_load_32(&pCache->merging) == 1); + TFileReader* pReader = tfileGetReaderByCol(sIdx->tindex, pCache->suid, pCache->colName); if (pReader == NULL) { indexWarn("empty tfile reader found"); @@ -568,6 +582,8 @@ int idxFlushCacheToTFile(SIndex* sIdx, void* cache, bool quit) { bool tn = tfileIter ? tfileIter->next(tfileIter) : false; SIdxTRslt* tr = idxTRsltCreate(); + if (tr == NULL) { + } while (cn == true || tn == true) { IterateValue* cv = (cn == true) ? cacheIter->getValue(cacheIter) : NULL; IterateValue* tv = (tn == true) ? tfileIter->getValue(tfileIter) : NULL; @@ -650,27 +666,30 @@ static int64_t idxGetAvailableVer(SIndex* sIdx, IndexCache* cache) { tfileReaderUnRef(rd); return ver; } -static int idxGenTFile(SIndex* sIdx, IndexCache* cache, SArray* batch) { +static int32_t idxGenTFile(SIndex* sIdx, IndexCache* cache, SArray* batch) { + int32_t code = 0; + int64_t version = idxGetAvailableVer(sIdx, cache); indexInfo("file name version: %" PRId64 "", version); - uint8_t colType = cache->type; - TFileWriter* tw = tfileWriterOpen(sIdx->path, cache->suid, version, cache->colName, colType); - if (tw == NULL) { - indexError("failed to open file to write"); - return -1; + TFileWriter* tw = NULL; + + code = tfileWriterOpen(sIdx->path, cache->suid, version, cache->colName, cache->type, &tw); + if (code != 0) { + indexError("failed to open file to write since %s", tstrerror(code)); } - int ret = tfileWriterPut(tw, batch, true); - if (ret != 0) { - indexError("failed to write into tindex "); + code = tfileWriterPut(tw, batch, true); + if (code != 0) { + indexError("failed to write into tindex since %s", tstrerror(code)); goto END; } tfileWriterClose(tw); - TFileReader* reader = tfileReaderOpen(sIdx, cache->suid, version, cache->colName); - if (reader == NULL) { - return -1; + TFileReader* reader = NULL; + code = tfileReaderOpen(sIdx, cache->suid, version, cache->colName, &reader); + if (code != 0) { + goto END; } indexInfo("success to create tfile, reopen it, %s", reader->ctx->file.buf); @@ -680,16 +699,17 @@ static int idxGenTFile(SIndex* sIdx, IndexCache* cache, SArray* batch) { ICacheKey key = {.suid = cache->suid, .colName = header->colName, .nColName = strlen(header->colName)}; taosThreadMutexLock(&tf->mtx); - tfileCachePut(tf->cache, &key, reader); + code = tfileCachePut(tf->cache, &key, reader); taosThreadMutexUnlock(&tf->mtx); - return ret; + return code; + END: if (tw != NULL) { idxFileCtxDestroy(tw->ctx, true); taosMemoryFree(tw); } - return -1; + return code; } int32_t idxSerialCacheKey(ICacheKey* key, char* buf) { diff --git a/source/libs/index/src/indexCache.c b/source/libs/index/src/indexCache.c index a6fbc73332..f2aefcfc41 100644 --- a/source/libs/index/src/indexCache.c +++ b/source/libs/index/src/indexCache.c @@ -129,6 +129,10 @@ static int32_t cacheSearchCompareFunc(void* cache, SIndexTerm* term, SIdxTRslt* _cache_range_compare cmpFn = idxGetCompare(type); CacheTerm* pCt = taosMemoryCalloc(1, sizeof(CacheTerm)); + if (pCt == NULL) { + return TSDB_CODE_OUT_OF_MEMORY; + } + pCt->colVal = term->colVal; pCt->colType = term->colType; pCt->version = atomic_load_64(&pCache->version); @@ -182,6 +186,10 @@ static int32_t cacheSearchTerm_JSON(void* cache, SIndexTerm* term, SIdxTRslt* tr IndexCache* pCache = mem->pCache; CacheTerm* pCt = taosMemoryCalloc(1, sizeof(CacheTerm)); + if (pCt == NULL) { + return TSDB_CODE_OUT_OF_MEMORY; + } + pCt->colVal = term->colVal; pCt->version = atomic_load_64(&pCache->version); @@ -340,7 +348,8 @@ IndexCache* idxCacheCreate(SIndex* idx, uint64_t suid, const char* colName, int8 cache->mem = idxInternalCacheCreate(type); cache->mem->pCache = cache; - cache->colName = IDX_TYPE_CONTAIN_EXTERN_TYPE(type, TSDB_DATA_TYPE_JSON) ? taosStrdup(JSON_COLUMN) : taosStrdup(colName); + cache->colName = + IDX_TYPE_CONTAIN_EXTERN_TYPE(type, TSDB_DATA_TYPE_JSON) ? taosStrdup(JSON_COLUMN) : taosStrdup(colName); cache->type = type; cache->index = idx; cache->version = 0; diff --git a/source/libs/index/src/indexFilter.c b/source/libs/index/src/indexFilter.c index 323f855601..a7e539efc6 100644 --- a/source/libs/index/src/indexFilter.c +++ b/source/libs/index/src/indexFilter.c @@ -135,7 +135,7 @@ static FORCE_INLINE int32_t sifGetOperParamNum(EOperatorType ty) { static FORCE_INLINE int32_t sifValidOp(EOperatorType ty) { if ((ty >= OP_TYPE_ADD && ty <= OP_TYPE_BIT_OR) || (ty == OP_TYPE_IN || ty == OP_TYPE_NOT_IN) || (ty == OP_TYPE_LIKE || ty == OP_TYPE_NOT_LIKE || ty == OP_TYPE_MATCH || ty == OP_TYPE_NMATCH)) { - return -1; + return TSDB_CODE_INVALID_PARA; } return 0; } @@ -209,7 +209,7 @@ static FORCE_INLINE int32_t sifGetValueFromNode(SNode *node, char **value) { static FORCE_INLINE int32_t sifInitJsonParam(SNode *node, SIFParam *param, SIFCtx *ctx) { SOperatorNode *nd = (SOperatorNode *)node; if (nodeType(node) != QUERY_NODE_OPERATOR) { - return -1; + return TSDB_CODE_INVALID_PARA; } SColumnNode *l = (SColumnNode *)nd->pLeft; SValueNode *r = (SValueNode *)nd->pRight; @@ -390,15 +390,7 @@ static int32_t sifInitOperParams(SIFParam **params, SOperatorNode *node, SIFCtx SIF_ERR_JRET(sifInitParam(node->pLeft, ¶mList[0], ctx)); if (nParam > 1) { - // if (sifNeedConvertCond(node->pLeft, node->pRight)) { - // SIF_ERR_JRET(sifInitParamValByCol(node->pLeft, node->pRight, ¶mList[1], ctx)); - // } else { SIF_ERR_JRET(sifInitParam(node->pRight, ¶mList[1], ctx)); - // } - // if (paramList[0].colValType == TSDB_DATA_TYPE_JSON && - // ((SOperatorNode *)(node))->opType == OP_TYPE_JSON_CONTAINS) { - // return TSDB_CODE_OUT_OF_MEMORY; - //} } *params = paramList; return TSDB_CODE_SUCCESS; @@ -485,7 +477,7 @@ int32_t sifStr2Num(char *buf, int32_t len, int8_t type, void *val) { if (IS_SIGNED_NUMERIC_TYPE(type)) { int64_t v = 0; if (0 != toInteger(buf, len, 10, &v)) { - return -1; + return TSDB_CODE_INVALID_PARA; } if (type == TSDB_DATA_TYPE_BIGINT) { *(int64_t *)val = v; @@ -505,7 +497,7 @@ int32_t sifStr2Num(char *buf, int32_t len, int8_t type, void *val) { } else if (IS_UNSIGNED_NUMERIC_TYPE(type)) { uint64_t v = 0; if (0 != toUInteger(buf, len, 10, &v)) { - return -1; + return TSDB_CODE_INVALID_PARA; } if (type == TSDB_DATA_TYPE_UBIGINT) { *(uint64_t *)val = v; @@ -517,7 +509,7 @@ int32_t sifStr2Num(char *buf, int32_t len, int8_t type, void *val) { *(uint16_t *)val = v; } } else { - return -1; + return TSDB_CODE_INVALID_PARA; } return 0; } @@ -526,7 +518,7 @@ static int32_t sifSetFltParam(SIFParam *left, SIFParam *right, SDataTypeBuf *typ int32_t code = 0; int8_t ltype = left->colValType, rtype = right->colValType; if (!IS_NUMERIC_TYPE(ltype) || !((IS_NUMERIC_TYPE(rtype)) || rtype == TSDB_DATA_TYPE_VARCHAR)) { - return -1; + return TSDB_CODE_INVALID_PARA; } if (ltype == TSDB_DATA_TYPE_FLOAT) { float f = 0; @@ -661,7 +653,7 @@ static int32_t sifDoIndex(SIFParam *left, SIFParam *right, int8_t operType, SIFP int8_t useIndex = sifShouldUseIndexBasedOnType(left, right); if (!useIndex) { output->status = SFLT_NOT_INDEX; - return -1; + return TSDB_CODE_INVALID_PARA; } bool reverse = false, equal = false; @@ -682,7 +674,7 @@ static int32_t sifDoIndex(SIFParam *left, SIFParam *right, int8_t operType, SIFP if (sifSetFltParam(left, right, &typedata, ¶m) != 0) { output->status = SFLT_NOT_INDEX; - return -1; + return TSDB_CODE_INVALID_PARA; } ret = left->api.metaFilterTableIds(arg->metaEx, ¶m, output->result); @@ -823,7 +815,7 @@ static FORCE_INLINE int32_t sifGetOperFn(int32_t funcId, sif_func_t *func, SIdxF } static int32_t sifExecOper(SOperatorNode *node, SIFCtx *ctx, SIFParam *output) { - int32_t code = -1; + int32_t code = TSDB_CODE_INVALID_PARA; if (sifValidOp(node->opType) < 0) { code = TSDB_CODE_QRY_INVALID_INPUT; ctx->code = code; diff --git a/source/libs/index/src/indexFstFile.c b/source/libs/index/src/indexFstFile.c index 43f15f5196..d86b3d476f 100644 --- a/source/libs/index/src/indexFstFile.c +++ b/source/libs/index/src/indexFstFile.c @@ -279,7 +279,9 @@ void idxFileDestroy(IdxFstFile* cw) { taosMemoryFree(cw); } -int idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len) { +int32_t idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len) { + int32_t code = 0; + if (write == NULL) { return 0; } @@ -288,7 +290,8 @@ int idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len) { int nWrite = ctx->write(ctx, buf, len); ASSERTS(nWrite == len, "index write incomplete data"); if (nWrite != len) { - return -1; + code = TAOS_SYSTEM_ERROR(errno); + return code; } write->count += len; @@ -296,7 +299,7 @@ int idxFileWrite(IdxFstFile* write, uint8_t* buf, uint32_t len) { return len; } -int idxFileRead(IdxFstFile* write, uint8_t* buf, uint32_t len) { +int32_t idxFileRead(IdxFstFile* write, uint8_t* buf, uint32_t len) { if (write == NULL) { return 0; } diff --git a/source/libs/index/src/indexJson.c b/source/libs/index/src/indexJson.c index 09c1320667..c6761233b9 100644 --- a/source/libs/index/src/indexJson.c +++ b/source/libs/index/src/indexJson.c @@ -15,11 +15,11 @@ #include "index.h" #include "indexInt.h" -int indexJsonOpen(SIndexJsonOpts *opts, const char *path, SIndexJson **index) { +int32_t indexJsonOpen(SIndexJsonOpts *opts, const char *path, SIndexJson **index) { // handle return indexOpen(opts, path, index); } -int indexJsonPut(SIndexJson *index, SIndexJsonMultiTerm *terms, uint64_t uid) { +int32_t indexJsonPut(SIndexJson *index, SIndexJsonMultiTerm *terms, uint64_t uid) { for (int i = 0; i < taosArrayGetSize(terms); i++) { SIndexJsonTerm *p = taosArrayGetP(terms, i); if (p->colType == TSDB_DATA_TYPE_BOOL) { @@ -36,7 +36,7 @@ int indexJsonPut(SIndexJson *index, SIndexJsonMultiTerm *terms, uint64_t uid) { return indexPut(index, terms, uid); } -int indexJsonSearch(SIndexJson *index, SIndexJsonMultiTermQuery *tq, SArray *result) { +int32_t indexJsonSearch(SIndexJson *index, SIndexJsonMultiTermQuery *tq, SArray *result) { SArray *terms = tq->query; for (int i = 0; i < taosArrayGetSize(terms); i++) { SIndexJsonTerm *p = taosArrayGetP(terms, i); diff --git a/source/libs/index/src/indexTfile.c b/source/libs/index/src/indexTfile.c index 84d17681b4..d0166ae2e5 100644 --- a/source/libs/index/src/indexTfile.c +++ b/source/libs/index/src/indexTfile.c @@ -110,11 +110,14 @@ TFileCache* tfileCacheCreate(SIndex* idx, const char* path) { } ctx->lru = idx->lru; - TFileReader* reader = tfileReaderCreate(ctx); - if (reader == NULL) { - indexInfo("skip invalid file: %s", file); + TFileReader* reader = NULL; + + int32_t code = tfileReaderCreate(ctx, &reader); + if (code != 0) { + indexInfo("skip invalid file: %s since %s", file, tstrerror(code)); continue; } + reader->lru = idx->lru; TFileHeader* header = &reader->header; @@ -160,9 +163,12 @@ TFileReader* tfileCacheGet(TFileCache* tcache, ICacheKey* key) { return *reader; } -void tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader) { - char buf[128] = {0}; - int32_t sz = idxSerialCacheKey(key, buf); +int32_t tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader) { + int32_t code = 0; + + char buf[128] = {0}; + int32_t sz = idxSerialCacheKey(key, buf); + TFileReader** p = taosHashGet(tcache->tableCache, buf, sz); if (p != NULL && *p != NULL) { TFileReader* oldRdr = *p; @@ -171,39 +177,44 @@ void tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader) { oldRdr->remove = true; tfileReaderUnRef(oldRdr); } - taosHashPut(tcache->tableCache, buf, sz, &reader, sizeof(void*)); - tfileReaderRef(reader); - return; + + code = taosHashPut(tcache->tableCache, buf, sz, &reader, sizeof(void*)); + if (code == 0) { + tfileReaderRef(reader); + } + return code; } -TFileReader* tfileReaderCreate(IFileCtx* ctx) { +int32_t tfileReaderCreate(IFileCtx* ctx, TFileReader** pReader) { + int32_t code = 0; TFileReader* reader = taosMemoryCalloc(1, sizeof(TFileReader)); if (reader == NULL) { - return NULL; + return TSDB_CODE_OUT_OF_MEMORY; } reader->ctx = ctx; reader->remove = false; - if (0 != tfileReaderVerify(reader)) { + if ((code = tfileReaderVerify(reader)) != 0) { indexError("invalid tfile, suid:%" PRIu64 ", colName:%s", reader->header.suid, reader->header.colName); - tfileReaderDestroy(reader); - return NULL; + TAOS_CHECK_GOTO(code, NULL, _End); } - if (0 != tfileReaderLoadHeader(reader)) { + if ((code = tfileReaderLoadHeader(reader)) != 0) { indexError("failed to load index header, suid:%" PRIu64 ", colName:%s", reader->header.suid, reader->header.colName); - tfileReaderDestroy(reader); - return NULL; + TAOS_CHECK_GOTO(code, NULL, _End); } - if (0 != tfileReaderLoadFst(reader)) { + if ((code = tfileReaderLoadFst(reader)) != 0) { indexError("failed to load index fst, suid:%" PRIu64 ", colName:%s, code:0x%x", reader->header.suid, reader->header.colName, errno); - tfileReaderDestroy(reader); - return NULL; + TAOS_CHECK_GOTO(code, NULL, _End); } - return reader; + *pReader = reader; + return code; +_End: + tfileReaderDestroy(reader); + return code; } void tfileReaderDestroy(TFileReader* reader) { if (reader == NULL) { @@ -479,9 +490,10 @@ static int32_t tfSearchCompareFunc_JSON(void* reader, SIndexTerm* tem, SIdxTRslt return TSDB_CODE_SUCCESS; } int tfileReaderSearch(TFileReader* reader, SIndexTermQuery* query, SIdxTRslt* tr) { + int ret = 0; SIndexTerm* term = query->term; EIndexQueryType qtype = query->qType; - int ret = 0; + if (IDX_TYPE_CONTAIN_EXTERN_TYPE(term->colType, TSDB_DATA_TYPE_JSON)) { ret = tfSearch[1][qtype](reader, term, tr); } else { @@ -492,12 +504,15 @@ int tfileReaderSearch(TFileReader* reader, SIndexTermQuery* query, SIdxTRslt* tr return ret; } -TFileWriter* tfileWriterOpen(char* path, uint64_t suid, int64_t version, const char* colName, uint8_t colType) { - char fullname[256] = {0}; +int32_t tfileWriterOpen(char* path, uint64_t suid, int64_t version, const char* colName, uint8_t colType, + TFileWriter** pWriter) { + int32_t code = 0; + char fullname[256] = {0}; tfileGenFileFullName(fullname, path, suid, colName, version); + IFileCtx* wcx = idxFileCtxCreate(TFILE, fullname, false, 1024 * 1024 * 64); if (wcx == NULL) { - return NULL; + return TSDB_CODE_OUT_OF_MEMORY; } TFileHeader tfh = {0}; @@ -508,34 +523,39 @@ TFileWriter* tfileWriterOpen(char* path, uint64_t suid, int64_t version, const c memcpy(tfh.colName, colName, strlen(colName)); } - return tfileWriterCreate(wcx, &tfh); + return tfileWriterCreate(wcx, &tfh, pWriter); } -TFileReader* tfileReaderOpen(SIndex* idx, uint64_t suid, int64_t version, const char* colName) { - char fullname[256] = {0}; +int32_t tfileReaderOpen(SIndex* idx, uint64_t suid, int64_t version, const char* colName, TFileReader** pReader) { + int32_t code = 0; + char fullname[256] = {0}; tfileGenFileFullName(fullname, idx->path, suid, colName, version); IFileCtx* wc = idxFileCtxCreate(TFILE, fullname, true, 1024 * 1024 * 1024); if (wc == NULL) { - terrno = TAOS_SYSTEM_ERROR(errno); - indexError("failed to open readonly file: %s, reason: %s", fullname, terrstr()); - return NULL; + code = TAOS_SYSTEM_ERROR(errno); + indexError("failed to open readonly file: %s, reason: %s", fullname, tstrerror(code)); + return code; } wc->lru = idx->lru; indexTrace("open read file name:%s, file size: %" PRId64 "", wc->file.buf, wc->file.size); - TFileReader* reader = tfileReaderCreate(wc); - return reader; + return tfileReaderCreate(wc, pReader); } -TFileWriter* tfileWriterCreate(IFileCtx* ctx, TFileHeader* header) { + +int32_t tfileWriterCreate(IFileCtx* ctx, TFileHeader* header, TFileWriter** pWriter) { + int32_t code = 0; TFileWriter* tw = taosMemoryCalloc(1, sizeof(TFileWriter)); if (tw == NULL) { - indexError("index: %" PRIu64 " failed to alloc TFilerWriter", header->suid); - return NULL; + code = TSDB_CODE_OUT_OF_MEMORY; + indexError("index: %" PRIu64 " failed to alloc TFilerWriter since %s", header->suid, tstrerror(code)); + return code; } tw->ctx = ctx; tw->header = *header; tfileWriteHeader(tw); - return tw; + + *pWriter = tw; + return code; } int tfileWriterPut(TFileWriter* tw, void* data, bool order) { @@ -545,8 +565,8 @@ int tfileWriterPut(TFileWriter* tw, void* data, bool order) { int8_t colType = tw->header.colType; colType = IDX_TYPE_GET_TYPE(colType); - if (colType == TSDB_DATA_TYPE_BINARY || colType == TSDB_DATA_TYPE_VARBINARY || - colType == TSDB_DATA_TYPE_NCHAR || colType == TSDB_DATA_TYPE_GEOMETRY) { + if (colType == TSDB_DATA_TYPE_BINARY || colType == TSDB_DATA_TYPE_VARBINARY || colType == TSDB_DATA_TYPE_NCHAR || + colType == TSDB_DATA_TYPE_GEOMETRY) { fn = tfileStrCompare; } else { fn = getComparFunc(colType, 0); @@ -570,6 +590,9 @@ int tfileWriterPut(TFileWriter* tw, void* data, bool order) { int32_t cap = 4 * 1024; char* buf = taosMemoryCalloc(1, cap); + if (buf == NULL) { + return TSDB_CODE_OUT_OF_MEMORY; + } for (size_t i = 0; i < sz; i++) { TFileValue* v = taosArrayGetP((SArray*)data, i); @@ -584,7 +607,7 @@ int tfileWriterPut(TFileWriter* tw, void* data, bool order) { char* t = (char*)taosMemoryRealloc(buf, cap); if (t == NULL) { taosMemoryFree(buf); - return -1; + return TSDB_CODE_OUT_OF_MEMORY; } buf = t; } @@ -664,7 +687,7 @@ void idxTFileDestroy(IndexTFile* tfile) { int idxTFileSearch(void* tfile, SIndexTermQuery* query, SIdxTRslt* result) { int ret = -1; if (tfile == NULL) { - return ret; + return TSDB_CODE_INVALID_DATA_FMT; } int64_t st = taosGetTimestampUs(); diff --git a/source/libs/index/src/indexUtil.c b/source/libs/index/src/indexUtil.c index cdfb79016f..f89944204d 100644 --- a/source/libs/index/src/indexUtil.c +++ b/source/libs/index/src/indexUtil.c @@ -160,10 +160,18 @@ int verdataCompare(const void *a, const void *b) { SIdxTRslt *idxTRsltCreate() { SIdxTRslt *tr = taosMemoryCalloc(1, sizeof(SIdxTRslt)); + if (tr == NULL) { + return NULL; + } tr->total = taosArrayInit(4, sizeof(uint64_t)); tr->add = taosArrayInit(4, sizeof(uint64_t)); tr->del = taosArrayInit(4, sizeof(uint64_t)); + + if (tr->total == NULL || tr->add == NULL || tr->del == NULL) { + idxTRsltClear(tr); + tr = NULL; + } return tr; } void idxTRsltClear(SIdxTRslt *tr) { diff --git a/source/libs/index/test/fstTest.cc b/source/libs/index/test/fstTest.cc index adf783d2eb..dc0b07d9af 100644 --- a/source/libs/index/test/fstTest.cc +++ b/source/libs/index/test/fstTest.cc @@ -607,7 +607,8 @@ void validateTFile(char* arg) { // std::vector threads; SIndex* index = (SIndex*)taosMemoryCalloc(1, sizeof(SIndex)); index->path = taosStrdup(arg); - TFileReader* reader = tfileReaderOpen(index, 0, 20000000, "tag1"); + TFileReader* reader = NULL; + int32_t code = tfileReaderOpen(index, 0, 20000000, "tag1", &reader); for (int i = 0; i < NUM_OF_THREAD; i++) { threads[i] = std::thread(fst_get, reader->fst); @@ -626,7 +627,8 @@ void iterTFileReader(char* path, char* uid, char* colName, char* ver) { uint64_t suid = atoi(uid); int version = atoi(ver); - TFileReader* reader = tfileReaderOpen(NULL, suid, version, colName); + TFileReader* reader = NULL; + int32_t code = tfileReaderOpen(NULL, suid, version, colName, &reader); Iterate* iter = tfileIteratorCreate(reader); bool tn = iter ? iter->next(iter) : false; diff --git a/source/libs/index/test/indexTests.cc b/source/libs/index/test/indexTests.cc index 612ce107c7..1c5a04d22d 100644 --- a/source/libs/index/test/indexTests.cc +++ b/source/libs/index/test/indexTests.cc @@ -294,7 +294,7 @@ class IndexEnv : public ::testing::Test { taosRemoveDir(path); SIndexOpts opts; opts.cacheSize = 1024 * 1024 * 4; - int ret = indexOpen(&opts, path, &index); + int32_t ret = indexOpen(&opts, path, &index); assert(ret == 0); } virtual void TearDown() { indexClose(index); } @@ -392,13 +392,13 @@ class TFileObj { IFileCtx* ctx = idxFileCtxCreate(TFILE, path.c_str(), false, 64 * 1024 * 1024); ctx->lru = taosLRUCacheInit(1024 * 1024 * 4, -1, .5); - writer_ = tfileWriterCreate(ctx, &header); + int32_t code = tfileWriterCreate(ctx, &header, &writer_); return writer_ != NULL ? true : false; } bool InitReader() { IFileCtx* ctx = idxFileCtxCreate(TFILE, fileName_.c_str(), true, 64 * 1024 * 1024); ctx->lru = taosLRUCacheInit(1024 * 1024 * 4, -1, .5); - reader_ = tfileReaderCreate(ctx); + int32_t code = tfileReaderCreate(ctx, &reader_); return reader_ != NULL ? true : false; } int Get(SIndexTermQuery* query, SArray* result) { @@ -701,7 +701,7 @@ class IndexObj { SIndexOpts opts; opts.cacheSize = 1024 * 1024 * 4; - int ret = indexOpen(&opts, dir.c_str(), &idx); + int32_t ret = indexOpen(&opts, dir.c_str(), &idx); if (ret != 0) { // opt std::cout << "failed to open index: %s" << dir << std::endl; diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index d6a1efc05f..f93b52dd2a 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -83,36 +83,42 @@ int64_t syncOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { } int32_t syncStart(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("failed to acquire rid:%" PRId64 " of tsNodeReftId for pSyncNode", rid); - return -1; + TAOS_RETURN(code); } - if (syncNodeRestore(pSyncNode) < 0) { - sError("vgId:%d, failed to restore sync log buffer since %s", pSyncNode->vgId, terrstr()); + if ((code = syncNodeRestore(pSyncNode)) < 0) { + sError("vgId:%d, failed to restore sync log buffer since %s", pSyncNode->vgId, tstrerror(code)); goto _err; } - if (syncNodeStart(pSyncNode) < 0) { - sError("vgId:%d, failed to start sync node since %s", pSyncNode->vgId, terrstr()); + if ((code = syncNodeStart(pSyncNode)) < 0) { + sError("vgId:%d, failed to start sync node since %s", pSyncNode->vgId, tstrerror(code)); goto _err; } syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); _err: syncNodeRelease(pSyncNode); - return -1; + TAOS_RETURN(code); } int32_t syncNodeGetConfig(int64_t rid, SSyncCfg* cfg) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("failed to acquire rid:%" PRId64 " of tsNodeReftId for pSyncNode", rid); - return terrno; + TAOS_RETURN(code); } *cfg = pSyncNode->raftCfg.cfg; @@ -153,8 +159,13 @@ static bool syncNodeCheckNewConfig(SSyncNode* pSyncNode, const SSyncCfg* pCfg) { } int32_t syncReconfig(int64_t rid, SSyncCfg* pNewCfg) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); - if (pSyncNode == NULL) return -1; + if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } if (pSyncNode->raftCfg.lastConfigIndex >= pNewCfg->lastIndex) { syncNodeRelease(pSyncNode); @@ -165,9 +176,9 @@ int32_t syncReconfig(int64_t rid, SSyncCfg* pNewCfg) { if (!syncNodeCheckNewConfig(pSyncNode, pNewCfg)) { syncNodeRelease(pSyncNode); - terrno = TSDB_CODE_SYN_NEW_CONFIG_ERROR; + code = TSDB_CODE_SYN_NEW_CONFIG_ERROR; sError("vgId:%d, failed to reconfig since invalid new config", pSyncNode->vgId); - return -1; + TAOS_RETURN(code); } syncNodeUpdateNewConfigIndex(pSyncNode, pNewCfg); @@ -185,15 +196,23 @@ int32_t syncReconfig(int64_t rid, SSyncCfg* pNewCfg) { } syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); } int32_t syncProcessMsg(int64_t rid, SRpcMsg* pMsg) { int32_t code = -1; - if (!syncIsInit()) return code; + if (!syncIsInit()) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } SSyncNode* pSyncNode = syncNodeAcquire(rid); - if (pSyncNode == NULL) return code; + if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } switch (pMsg->msgType) { case TDMT_SYNC_HEARTBEAT: @@ -239,21 +258,25 @@ int32_t syncProcessMsg(int64_t rid, SRpcMsg* pMsg) { code = syncBecomeAssignedLeader(pSyncNode, pMsg); break; default: - terrno = TSDB_CODE_MSG_NOT_PROCESSED; - code = -1; + code = TSDB_CODE_MSG_NOT_PROCESSED; } syncNodeRelease(pSyncNode); if (code != 0) { sDebug("vgId:%d, failed to process sync msg:%p type:%s since 0x%x", pSyncNode->vgId, pMsg, TMSG_INFO(pMsg->msgType), - terrno); + code); } - return code; + TAOS_RETURN(code); } int32_t syncLeaderTransfer(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); - if (pSyncNode == NULL) return -1; + if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } int32_t ret = syncNodeLeaderTransfer(pSyncNode); syncNodeRelease(pSyncNode); @@ -275,16 +298,14 @@ int32_t syncForceBecomeFollower(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } int32_t syncBecomeAssignedLeader(SSyncNode* ths, SRpcMsg* pRpcMsg) { - int32_t ret = -1; - int32_t errcode = TSDB_CODE_MND_ARB_TOKEN_MISMATCH; + int32_t code = TSDB_CODE_MND_ARB_TOKEN_MISMATCH; void* pHead = NULL; int32_t contLen = 0; SVArbSetAssignedLeaderReq req = {0}; if (tDeserializeSVArbSetAssignedLeaderReq((char*)pRpcMsg->pCont + sizeof(SMsgHead), pRpcMsg->contLen, &req) != 0) { sError("vgId:%d, failed to deserialize SVArbSetAssignedLeaderReq", ths->vgId); - terrno = TSDB_CODE_INVALID_MSG; - errcode = terrno; + code = TSDB_CODE_INVALID_MSG; goto _OVER; } @@ -303,17 +324,17 @@ int32_t syncBecomeAssignedLeader(SSyncNode* ths, SRpcMsg* pRpcMsg) { } if (ths->state != TAOS_SYNC_STATE_ASSIGNED_LEADER) { - terrno = TSDB_CODE_SUCCESS; + code = TSDB_CODE_SUCCESS; raftStoreNextTerm(ths); if (terrno != TSDB_CODE_SUCCESS) { - sError("vgId:%d, failed to set next term since:%s", ths->vgId, terrstr()); - errcode = terrno; + code = terrno; + sError("vgId:%d, failed to set next term since:%s", ths->vgId, tstrerror(code)); goto _OVER; } syncNodeBecomeAssignedLeader(ths); - if (syncNodeAppendNoop(ths) < 0) { - sError("vgId:%d, assigned leader failed to append noop entry since %s", ths->vgId, terrstr()); + if ((code = syncNodeAppendNoop(ths)) < 0) { + sError("vgId:%d, assigned leader failed to append noop entry since %s", ths->vgId, tstrerror(code)); } } @@ -324,32 +345,28 @@ int32_t syncBecomeAssignedLeader(SSyncNode* ths, SRpcMsg* pRpcMsg) { contLen = tSerializeSVArbSetAssignedLeaderRsp(NULL, 0, &rsp); if (contLen <= 0) { + code = TSDB_CODE_OUT_OF_MEMORY; sError("vgId:%d, failed to serialize SVArbSetAssignedLeaderRsp", ths->vgId); - terrno = TSDB_CODE_OUT_OF_MEMORY; - errcode = terrno; goto _OVER; } pHead = rpcMallocCont(contLen); if (!pHead) { + code = TSDB_CODE_OUT_OF_MEMORY; sError("vgId:%d, failed to malloc memory for SVArbSetAssignedLeaderRsp", ths->vgId); - terrno = TSDB_CODE_OUT_OF_MEMORY; - errcode = terrno; goto _OVER; } if (tSerializeSVArbSetAssignedLeaderRsp(pHead, contLen, &rsp) <= 0) { + code = TSDB_CODE_OUT_OF_MEMORY; sError("vgId:%d, failed to serialize SVArbSetAssignedLeaderRsp", ths->vgId); - terrno = TSDB_CODE_OUT_OF_MEMORY; - errcode = terrno; rpcFreeCont(pHead); goto _OVER; } - errcode = TSDB_CODE_SUCCESS; - ret = 0; + code = TSDB_CODE_SUCCESS; _OVER:; SRpcMsg rspMsg = { - .code = errcode, + .code = code, .pCont = pHead, .contLen = contLen, .info = pRpcMsg->info, @@ -358,12 +375,17 @@ _OVER:; tmsgSendRsp(&rspMsg); tFreeSVArbSetAssignedLeaderReq(&req); - return ret; + TAOS_RETURN(code); } int32_t syncSendTimeoutRsp(int64_t rid, int64_t seq) { + int32_t code = 0; SSyncNode* pNode = syncNodeAcquire(rid); - if (pNode == NULL) return -1; + if (pNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } SRpcMsg rpcMsg = {0}; int32_t ret = syncRespMgrGetAndDel(pNode->pSyncRespMgr, seq, &rpcMsg.info); @@ -376,7 +398,7 @@ int32_t syncSendTimeoutRsp(int64_t rid, int64_t seq) { return 0; } else { sError("no message handle to send timeout response, seq:%" PRId64, seq); - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } } @@ -402,9 +424,12 @@ static SyncIndex syncLogRetentionIndex(SSyncNode* pSyncNode, int64_t bytes) { int32_t syncBeginSnapshot(int64_t rid, int64_t lastApplyIndex) { SSyncNode* pSyncNode = syncNodeAcquire(rid); + int32_t code = 0; if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync begin snapshot error"); - return -1; + TAOS_RETURN(code); } SyncIndex beginIndex = pSyncNode->pLogStore->syncLogBeginIndex(pSyncNode->pLogStore); @@ -417,7 +442,6 @@ int32_t syncBeginSnapshot(int64_t rid, int64_t lastApplyIndex) { return 0; } - int32_t code = 0; int64_t logRetention = 0; if (syncNodeIsMnode(pSyncNode)) { @@ -475,24 +499,26 @@ _DEL_WAL: } while (0); syncNodeRelease(pSyncNode); - return code; + TAOS_RETURN(code); } int32_t syncEndSnapshot(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync end snapshot error"); - return -1; + TAOS_RETURN(code); } - int32_t code = 0; if (atomic_load_64(&pSyncNode->snapshottingIndex) != SYNC_INDEX_INVALID) { SSyncLogStoreData* pData = pSyncNode->pLogStore->data; code = walEndSnapshot(pData->pWal); if (code != 0) { - sNError(pSyncNode, "wal snapshot end error since:%s", terrstr()); + sNError(pSyncNode, "wal snapshot end error since:%s", tstrerror(code)); syncNodeRelease(pSyncNode); - return -1; + TAOS_RETURN(code); } else { sNTrace(pSyncNode, "wal snapshot end, index:%" PRId64, atomic_load_64(&pSyncNode->snapshottingIndex)); atomic_store_64(&pSyncNode->snapshottingIndex, SYNC_INDEX_INVALID); @@ -500,7 +526,7 @@ int32_t syncEndSnapshot(int64_t rid) { } syncNodeRelease(pSyncNode); - return code; + TAOS_RETURN(code); } bool syncNodeIsReadyForRead(SSyncNode* pSyncNode) { @@ -585,13 +611,13 @@ int32_t syncNodeLeaderTransfer(SSyncNode* pSyncNode) { int32_t syncNodeLeaderTransferTo(SSyncNode* pSyncNode, SNodeInfo newLeader) { if (pSyncNode->replicaNum == 1) { sDebug("vgId:%d, only one replica, cannot leader transfer", pSyncNode->vgId); - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } sNTrace(pSyncNode, "begin leader transfer to %s:%u", newLeader.nodeFqdn, newLeader.nodePort); SRpcMsg rpcMsg = {0}; - (void)syncBuildLeaderTransfer(&rpcMsg, pSyncNode->vgId); + TAOS_CHECK_RETURN(syncBuildLeaderTransfer(&rpcMsg, pSyncNode->vgId)); SyncLeaderTransfer* pMsg = rpcMsg.pCont; pMsg->newLeaderId.addr = SYNC_ADDR(&newLeader); @@ -639,10 +665,12 @@ SSyncState syncGetState(int64_t rid) { } int32_t syncGetArbToken(int64_t rid, char* outToken) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { - terrno = TSDB_CODE_NOT_FOUND; - return -1; + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); } memset(outToken, 0, TSDB_ARB_TOKEN_SIZE); @@ -650,41 +678,44 @@ int32_t syncGetArbToken(int64_t rid, char* outToken) { strncpy(outToken, pSyncNode->arbToken, TSDB_ARB_TOKEN_SIZE); taosThreadMutexUnlock(&pSyncNode->arbTokenMutex); - terrno = TSDB_CODE_SUCCESS; syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); } int32_t syncGetAssignedLogSynced(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { - terrno = TSDB_CODE_NOT_FOUND; - return -1; + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); } if (pSyncNode->state != TAOS_SYNC_STATE_LEADER) { - terrno = TSDB_CODE_VND_ARB_NOT_SYNCED; + code = TSDB_CODE_VND_ARB_NOT_SYNCED; syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); } bool isSync = pSyncNode->commitIndex >= pSyncNode->assignedCommitIndex; - terrno = (isSync ? TSDB_CODE_SUCCESS : TSDB_CODE_VND_ARB_NOT_SYNCED); + code = (isSync ? TSDB_CODE_SUCCESS : TSDB_CODE_VND_ARB_NOT_SYNCED); syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); } int32_t syncUpdateArbTerm(int64_t rid, SyncTerm arbTerm) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { - terrno = TSDB_CODE_NOT_FOUND; - return -1; + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); } pSyncNode->arbTerm = TMAX(arbTerm, pSyncNode->arbTerm); syncNodeRelease(pSyncNode); - return 0; + TAOS_RETURN(code); } SyncIndex syncNodeGetSnapshotConfigIndex(SSyncNode* pSyncNode, SyncIndex snapshotLastApplyIndex) { @@ -730,10 +761,13 @@ void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet) { } int32_t syncPropose(int64_t rid, SRpcMsg* pMsg, bool isWeak, int64_t* seq) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync propose error"); - return -1; + TAOS_RETURN(code); } int32_t ret = syncNodePropose(pSyncNode, pMsg, isWeak, seq); @@ -742,24 +776,30 @@ int32_t syncPropose(int64_t rid, SRpcMsg* pMsg, bool isWeak, int64_t* seq) { } int32_t syncCheckMember(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync propose error"); - return -1; + TAOS_RETURN(code); } if (pSyncNode->myNodeInfo.nodeRole == TAOS_SYNC_ROLE_LEARNER) { - return -1; + return TSDB_CODE_SYN_WRONG_ROLE; } return 0; } int32_t syncIsCatchUp(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync Node Acquire error since %d", errno); - return -1; + TAOS_RETURN(code); } int32_t isCatchUp = 0; @@ -781,10 +821,13 @@ int32_t syncIsCatchUp(int64_t rid) { } ESyncRole syncGetRole(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync Node Acquire error since %d", errno); - return -1; + TAOS_RETURN(code); } ESyncRole role = pSyncNode->raftCfg.cfg.nodeInfo[pSyncNode->raftCfg.cfg.myIndex].nodeRole; @@ -794,10 +837,13 @@ ESyncRole syncGetRole(int64_t rid) { } int64_t syncGetTerm(int64_t rid) { + int32_t code = 0; SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("sync Node Acquire error since %d", errno); - return -1; + TAOS_RETURN(code); } int64_t term = raftStoreGetTerm(pSyncNode); @@ -807,25 +853,26 @@ int64_t syncGetTerm(int64_t rid) { } int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_t* seq) { + int32_t code = 0; if (pSyncNode->state != TAOS_SYNC_STATE_LEADER && pSyncNode->state != TAOS_SYNC_STATE_ASSIGNED_LEADER) { - terrno = TSDB_CODE_SYN_NOT_LEADER; + code = TSDB_CODE_SYN_NOT_LEADER; sNWarn(pSyncNode, "sync propose not leader, type:%s", TMSG_INFO(pMsg->msgType)); - return -1; + TAOS_RETURN(code); } if (!pSyncNode->restoreFinish) { - terrno = TSDB_CODE_SYN_PROPOSE_NOT_READY; + code = TSDB_CODE_SYN_PROPOSE_NOT_READY; sNWarn(pSyncNode, "failed to sync propose since not ready, type:%s, last:%" PRId64 ", cmt:%" PRId64, TMSG_INFO(pMsg->msgType), syncNodeGetLastIndex(pSyncNode), pSyncNode->commitIndex); - return -1; + TAOS_RETURN(code); } // heartbeat timeout if (pSyncNode->state != TAOS_SYNC_STATE_ASSIGNED_LEADER && syncNodeHeartbeatReplyTimeout(pSyncNode)) { - terrno = TSDB_CODE_SYN_PROPOSE_NOT_READY; + code = TSDB_CODE_SYN_PROPOSE_NOT_READY; sNError(pSyncNode, "failed to sync propose since heartbeat timeout, type:%s, last:%" PRId64 ", cmt:%" PRId64, TMSG_INFO(pMsg->msgType), syncNodeGetLastIndex(pSyncNode), pSyncNode->commitIndex); - return -1; + TAOS_RETURN(code); } // optimized one replica @@ -850,10 +897,10 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ return 0; } } else { - terrno = TSDB_CODE_SYN_INTERNAL_ERROR; + code = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, failed to propose optimized msg, index:%" PRId64 " type:%s", pSyncNode->vgId, retIndex, TMSG_INFO(pMsg->msgType)); - return -1; + TAOS_RETURN(code); } } else { SRespStub stub = {.createTime = taosGetTimestampMs(), .rpcMsg = *pMsg}; @@ -863,7 +910,7 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ if (code != 0) { sError("vgId:%d, failed to propose msg while serialize since %s", pSyncNode->vgId, terrstr()); (void)syncRespMgrDel(pSyncNode->pSyncRespMgr, seqNum); - return -1; + TAOS_RETURN(code); } sNTrace(pSyncNode, "propose msg, type:%s", TMSG_INFO(pMsg->msgType)); @@ -874,7 +921,7 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak, int64_ } if (seq != NULL) *seq = seqNum; - return code; + TAOS_RETURN(code); } } @@ -912,6 +959,7 @@ static int32_t syncHbTimerStart(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) { taosTmrReset(pSyncTimer->timerCb, pSyncTimer->timerMS / HEARTBEAT_TICK_NUM, (void*)(pData->rid), syncEnv()->pTimerManager, &pSyncTimer->pTimer); } else { + ret = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, start ctrl hb timer error, sync env is stop", pSyncNode->vgId); } return ret; @@ -920,7 +968,9 @@ static int32_t syncHbTimerStart(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) { static int32_t syncHbTimerStop(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) { int32_t ret = 0; atomic_add_fetch_64(&pSyncTimer->logicClock, 1); - taosTmrStop(pSyncTimer->pTimer); + if (!taosTmrStop(pSyncTimer->pTimer)) { + return TSDB_CODE_SYN_INTERNAL_ERROR; + } pSyncTimer->pTimer = NULL; syncHbTimerDataRemove(pSyncTimer->hbDataRid); pSyncTimer->hbDataRid = -1; @@ -928,6 +978,7 @@ static int32_t syncHbTimerStop(SSyncNode* pSyncNode, SSyncTimer* pSyncTimer) { } int32_t syncNodeLogStoreRestoreOnNeed(SSyncNode* pNode) { + int32_t code = 0; ASSERTS(pNode->pLogStore != NULL, "log store not created"); ASSERTS(pNode->pFsm != NULL, "pFsm not registered"); ASSERTS(pNode->pFsm->FpGetSnapshotInfo != NULL, "FpGetSnapshotInfo not registered"); @@ -938,13 +989,13 @@ int32_t syncNodeLogStoreRestoreOnNeed(SSyncNode* pNode) { SyncIndex firstVer = pNode->pLogStore->syncLogBeginIndex(pNode->pLogStore); SyncIndex lastVer = pNode->pLogStore->syncLogLastIndex(pNode->pLogStore); if ((lastVer < commitIndex || firstVer > commitIndex + 1) || pNode->fsmState == SYNC_FSM_STATE_INCOMPLETE) { - if (pNode->pLogStore->syncLogRestoreFromSnapshot(pNode->pLogStore, commitIndex)) { + if ((code = pNode->pLogStore->syncLogRestoreFromSnapshot(pNode->pLogStore, commitIndex)) != 0) { sError("vgId:%d, failed to restore log store from snapshot since %s. lastVer:%" PRId64 ", snapshotVer:%" PRId64, pNode->vgId, terrstr(), lastVer, commitIndex); - return -1; + TAOS_RETURN(code); } } - return 0; + TAOS_RETURN(code); } // open/close -------------- @@ -981,13 +1032,15 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { pSyncNode->raftCfg.configIndexCount = 1; pSyncNode->raftCfg.configIndexArr[0] = -1; - if (syncWriteCfgFile(pSyncNode) != 0) { + if ((code = syncWriteCfgFile(pSyncNode)) != 0) { + terrno = code; sError("vgId:%d, failed to create sync cfg file", pSyncNode->vgId); goto _error; } } else { // update syncCfg by raft_config.json - if (syncReadCfgFile(pSyncNode) != 0) { + if ((code = syncReadCfgFile(pSyncNode)) != 0) { + terrno = code; sError("vgId:%d, failed to read sync cfg file", pSyncNode->vgId); goto _error; } @@ -996,7 +1049,8 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { if (pSyncInfo->syncCfg.totalReplicaNum > 0 && syncIsConfigChanged(&pSyncNode->raftCfg.cfg, &pSyncInfo->syncCfg)) { sInfo("vgId:%d, use sync config from input options and write to cfg file", pSyncNode->vgId); pSyncNode->raftCfg.cfg = pSyncInfo->syncCfg; - if (syncWriteCfgFile(pSyncNode) != 0) { + if ((code = syncWriteCfgFile(pSyncNode)) != 0) { + terrno = code; sError("vgId:%d, failed to write sync cfg file", pSyncNode->vgId); goto _error; } @@ -1028,7 +1082,8 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { if (vnodeVersion > pSyncInfo->syncCfg.changeVersion) { if (updated) { sInfo("vgId:%d, save config info since dnode info changed", pSyncNode->vgId); - if (syncWriteCfgFile(pSyncNode) != 0) { + if ((code = syncWriteCfgFile(pSyncNode)) != 0) { + terrno = code; sError("vgId:%d, failed to write sync cfg file on dnode info updated", pSyncNode->vgId); goto _error; } @@ -1042,15 +1097,16 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { pSyncNode->syncEqCtrlMsg = pSyncInfo->syncEqCtrlMsg; // create raft log ring buffer - (void)syncLogBufferCreate(&pSyncNode->pLogBuf); // TODO: check return value + code = syncLogBufferCreate(&pSyncNode->pLogBuf); if (pSyncNode->pLogBuf == NULL) { - sError("failed to init sync log buffer since %s. vgId:%d", terrstr(), pSyncNode->vgId); + sError("failed to init sync log buffer since %s. vgId:%d", tstrerror(code), pSyncNode->vgId); goto _error; } // init internal pSyncNode->myNodeInfo = pSyncNode->raftCfg.cfg.nodeInfo[pSyncNode->raftCfg.cfg.myIndex]; if (!syncUtilNodeInfo2RaftId(&pSyncNode->myNodeInfo, pSyncNode->vgId, &pSyncNode->myRaftId)) { + terrno = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, failed to determine my raft member id", pSyncNode->vgId); goto _error; } @@ -1072,6 +1128,7 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { } for (int32_t i = 0; i < pSyncNode->peersNum; ++i) { if (!syncUtilNodeInfo2RaftId(&pSyncNode->peersNodeInfo[i], pSyncNode->vgId, &pSyncNode->peersId[i])) { + terrno = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, failed to determine raft member id, peer:%d", pSyncNode->vgId, i); goto _error; } @@ -1082,6 +1139,7 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { pSyncNode->totalReplicaNum = pSyncNode->raftCfg.cfg.totalReplicaNum; for (int32_t i = 0; i < pSyncNode->raftCfg.cfg.totalReplicaNum; ++i) { if (!syncUtilNodeInfo2RaftId(&pSyncNode->raftCfg.cfg.nodeInfo[i], pSyncNode->vgId, &pSyncNode->replicasId[i])) { + terrno = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, failed to determine raft member id, replica:%d", pSyncNode->vgId, i); goto _error; } @@ -1122,7 +1180,8 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { // init TLA+ server vars pSyncNode->state = TAOS_SYNC_STATE_FOLLOWER; pSyncNode->roleTimeMs = taosGetTimestampMs(); - if (raftStoreOpen(pSyncNode) != 0) { + if ((code = raftStoreOpen(pSyncNode)) != 0) { + terrno = code; sError("vgId:%d, failed to open raft store at path %s", pSyncNode->vgId, pSyncNode->raftStorePath); goto _error; } @@ -1170,6 +1229,7 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { if (pSyncNode->fsmState == SYNC_FSM_STATE_INCOMPLETE) { sError("vgId:%d, fsm state is incomplete.", pSyncNode->vgId); if (pSyncNode->replicaNum == 1) { + terrno = TSDB_CODE_SYN_INTERNAL_ERROR; goto _error; } } @@ -1178,7 +1238,8 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { sInfo("vgId:%d, sync node commitIndex initialized as %" PRId64, pSyncNode->vgId, pSyncNode->commitIndex); // restore log store on need - if (syncNodeLogStoreRestoreOnNeed(pSyncNode) < 0) { + if ((code = syncNodeLogStoreRestoreOnNeed(pSyncNode)) < 0) { + terrno = code; sError("vgId:%d, failed to restore log store since %s.", pSyncNode->vgId, terrstr()); goto _error; } @@ -1215,7 +1276,10 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { // init peer heartbeat timer for (int32_t i = 0; i < TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA; ++i) { - syncHbTimerInit(pSyncNode, &(pSyncNode->peerHeartbeatTimerArr[i]), (pSyncNode->replicasId)[i]); + if ((code = syncHbTimerInit(pSyncNode, &(pSyncNode->peerHeartbeatTimerArr[i]), (pSyncNode->replicasId)[i])) != 0) { + errno = code; + goto _error; + } } // tools @@ -1248,13 +1312,15 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { pSyncNode->changing = false; // replication mgr - if (syncNodeLogReplInit(pSyncNode) < 0) { + if ((code = syncNodeLogReplInit(pSyncNode)) < 0) { + terrno = code; sError("vgId:%d, failed to init repl mgr since %s.", pSyncNode->vgId, terrstr()); goto _error; } // peer state - if (syncNodePeerStateInit(pSyncNode) < 0) { + if ((code = syncNodePeerStateInit(pSyncNode)) < 0) { + terrno = code; sError("vgId:%d, failed to init peer stat since %s.", pSyncNode->vgId, terrstr()); goto _error; } @@ -1274,7 +1340,8 @@ SSyncNode* syncNodeOpen(SSyncInfo* pSyncInfo, int32_t vnodeVersion) { atomic_store_64(&pSyncNode->snapshottingIndex, SYNC_INDEX_INVALID); // init log buffer - if (syncLogBufferInit(pSyncNode->pLogBuf, pSyncNode) < 0) { + if ((code = syncLogBufferInit(pSyncNode->pLogBuf, pSyncNode)) < 0) { + terrno = code; sError("vgId:%d, failed to init sync log buffer since %s", pSyncNode->vgId, terrstr()); goto _error; } @@ -1315,6 +1382,7 @@ void syncNodeMaybeUpdateCommitBySnapshot(SSyncNode* pSyncNode) { #endif int32_t syncNodeRestore(SSyncNode* pSyncNode) { + int32_t code = 0; ASSERTS(pSyncNode->pLogStore != NULL, "log store not created"); ASSERTS(pSyncNode->pLogBuf != NULL, "ring log buffer not created"); @@ -1325,22 +1393,21 @@ int32_t syncNodeRestore(SSyncNode* pSyncNode) { taosThreadMutexUnlock(&pSyncNode->pLogBuf->mutex); if (lastVer != -1 && endIndex != lastVer + 1) { - terrno = TSDB_CODE_WAL_LOG_INCOMPLETE; + code = TSDB_CODE_WAL_LOG_INCOMPLETE; sError("vgId:%d, failed to restore sync node since %s. expected lastLogIndex:%" PRId64 ", lastVer:%" PRId64 "", pSyncNode->vgId, terrstr(), endIndex - 1, lastVer); - return -1; + TAOS_RETURN(code); } ASSERT(endIndex == lastVer + 1); pSyncNode->commitIndex = TMAX(pSyncNode->commitIndex, commitIndex); sInfo("vgId:%d, restore sync until commitIndex:%" PRId64, pSyncNode->vgId, pSyncNode->commitIndex); - if (pSyncNode->fsmState != SYNC_FSM_STATE_INCOMPLETE && - syncLogBufferCommit(pSyncNode->pLogBuf, pSyncNode, pSyncNode->commitIndex) < 0) { - return -1; + if (pSyncNode->fsmState != SYNC_FSM_STATE_INCOMPLETE && (code = syncLogBufferCommit(pSyncNode->pLogBuf, pSyncNode, pSyncNode->commitIndex)) < 0) { + TAOS_RETURN(code); } - return 0; + TAOS_RETURN(code); } int32_t syncNodeStart(SSyncNode* pSyncNode) { @@ -1353,7 +1420,7 @@ int32_t syncNodeStart(SSyncNode* pSyncNode) { syncNodeBecomeLeader(pSyncNode, "one replica start"); // Raft 3.6.2 Committing entries from previous terms - syncNodeAppendNoop(pSyncNode); + TAOS_CHECK_RETURN(syncNodeAppendNoop(pSyncNode)); } else { syncNodeBecomeFollower(pSyncNode, "first start"); } @@ -1362,7 +1429,7 @@ int32_t syncNodeStart(SSyncNode* pSyncNode) { int32_t ret = 0; ret = syncNodeStartPingTimer(pSyncNode); if (ret != 0) { - sError("vgId:%d, failed to start ping timer since %s", pSyncNode->vgId, terrstr()); + sError("vgId:%d, failed to start ping timer since %s", pSyncNode->vgId, tstrerror(ret)); } return ret; } @@ -1518,8 +1585,10 @@ int32_t syncNodeStartElectTimer(SSyncNode* pSyncNode, int32_t ms) { pSyncNode->electTimerParam.pSyncNode = pSyncNode; pSyncNode->electTimerParam.pData = NULL; - taosTmrReset(pSyncNode->FpElectTimerCB, pSyncNode->electTimerMS, (void*)(pSyncNode->rid), syncEnv()->pTimerManager, - &pSyncNode->pElectTimer); + if (!taosTmrReset(pSyncNode->FpElectTimerCB, pSyncNode->electTimerMS, (void*)(pSyncNode->rid), + syncEnv()->pTimerManager, &pSyncNode->pElectTimer)) { + ret = TSDB_CODE_SYN_INTERNAL_ERROR; + } } else { sError("vgId:%d, start elect timer error, sync env is stop", pSyncNode->vgId); @@ -1538,12 +1607,13 @@ int32_t syncNodeStopElectTimer(SSyncNode* pSyncNode) { int32_t syncNodeRestartElectTimer(SSyncNode* pSyncNode, int32_t ms) { int32_t ret = 0; - syncNodeStopElectTimer(pSyncNode); - syncNodeStartElectTimer(pSyncNode, ms); + TAOS_CHECK_RETURN(syncNodeStopElectTimer(pSyncNode)); + TAOS_CHECK_RETURN(syncNodeStartElectTimer(pSyncNode, ms)); return ret; } void syncNodeResetElectTimer(SSyncNode* pSyncNode) { + int32_t code = 0; int32_t electMS; if (pSyncNode->raftCfg.isStandBy) { @@ -1552,7 +1622,9 @@ void syncNodeResetElectTimer(SSyncNode* pSyncNode) { electMS = syncUtilElectRandomMS(pSyncNode->electBaseLine, 2 * pSyncNode->electBaseLine); } - (void)syncNodeRestartElectTimer(pSyncNode, electMS); + if ((code = syncNodeRestartElectTimer(pSyncNode, electMS)) != 0) { + sError("failed to restart elect timer since %s", tstrerror(code)); + } sNTrace(pSyncNode, "reset elect timer, min:%d, max:%d, ms:%d", pSyncNode->electBaseLine, 2 * pSyncNode->electBaseLine, electMS); @@ -1585,7 +1657,7 @@ int32_t syncNodeStartHeartbeatTimer(SSyncNode* pSyncNode) { for (int32_t i = 0; i < pSyncNode->peersNum; ++i) { SSyncTimer* pSyncTimer = syncNodeGetHbTimer(pSyncNode, &(pSyncNode->peersId[i])); if (pSyncTimer != NULL) { - syncHbTimerStart(pSyncNode, pSyncTimer); + TAOS_CHECK_RETURN(syncHbTimerStart(pSyncNode, pSyncTimer)); } } @@ -1604,7 +1676,7 @@ int32_t syncNodeStopHeartbeatTimer(SSyncNode* pSyncNode) { for (int32_t i = 0; i < pSyncNode->peersNum; ++i) { SSyncTimer* pSyncTimer = syncNodeGetHbTimer(pSyncNode, &(pSyncNode->peersId[i])); if (pSyncTimer != NULL) { - syncHbTimerStop(pSyncNode, pSyncTimer); + TAOS_CHECK_RETURN(syncHbTimerStop(pSyncNode, pSyncTimer)); } } @@ -1636,12 +1708,12 @@ int32_t syncNodeSendMsgById(const SRaftId* destRaftId, SSyncNode* pNode, SRpcMsg } if (code < 0) { - sError("vgId:%d, failed to send sync msg since %s. epset:%p dnode:%d addr:%" PRId64, pNode->vgId, terrstr(), epSet, - DID(destRaftId), destRaftId->addr); + sError("vgId:%d, failed to send sync msg since %s. epset:%p dnode:%d addr:%" PRId64, pNode->vgId, tstrerror(code), + epSet, DID(destRaftId), destRaftId->addr); rpcFreeCont(pMsg->pCont); } - return code; + TAOS_RETURN(code); } inline bool syncNodeInConfig(SSyncNode* pNode, const SSyncCfg* pCfg) { @@ -2145,7 +2217,7 @@ int32_t syncNodeAssignedLeader2Leader(SSyncNode* pSyncNode) { int32_t ret = syncNodeAppendNoop(pSyncNode); if (ret < 0) { - sError("vgId:%d, failed to append noop entry since %s", pSyncNode->vgId, terrstr()); + sError("vgId:%d, failed to append noop entry since %s", pSyncNode->vgId, tstrerror(ret)); } SyncIndex lastIndex = pSyncNode->pLogStore->syncLogLastIndex(pSyncNode->pLogStore); @@ -2594,8 +2666,9 @@ void syncBuildConfigFromReq(SAlterVnodeReplicaReq* pReq, SSyncCfg* cfg) { // TO } int32_t syncNodeCheckChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry) { + int32_t code = 0; if (pEntry->originalRpcType != TDMT_SYNC_CONFIG_CHANGE) { - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } SMsgHead* head = (SMsgHead*)pEntry->data; @@ -2603,8 +2676,8 @@ int32_t syncNodeCheckChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry) { SAlterVnodeTypeReq req = {0}; if (tDeserializeSAlterVnodeReplicaReq(pReq, head->contLen, &req) != 0) { - terrno = TSDB_CODE_INVALID_MSG; - return -1; + code = TSDB_CODE_INVALID_MSG; + TAOS_RETURN(code); } SSyncCfg cfg = {0}; @@ -2755,6 +2828,7 @@ void syncNodeChangePeerAndCfgToVoter(SSyncNode* ths, SSyncCfg* cfg) { } int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum) { + int32_t code = 0; // 1.rebuild replicasId, remove deleted one SRaftId oldReplicasId[TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA]; memcpy(oldReplicasId, ths->replicasId, sizeof(oldReplicasId)); @@ -2762,13 +2836,19 @@ int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum ths->replicaNum = ths->raftCfg.cfg.replicaNum; ths->totalReplicaNum = ths->raftCfg.cfg.totalReplicaNum; for (int32_t i = 0; i < ths->raftCfg.cfg.totalReplicaNum; ++i) { - syncUtilNodeInfo2RaftId(&ths->raftCfg.cfg.nodeInfo[i], ths->vgId, &ths->replicasId[i]); + if (!syncUtilNodeInfo2RaftId(&ths->raftCfg.cfg.nodeInfo[i], ths->vgId, &ths->replicasId[i])) + return TSDB_CODE_SYN_INTERNAL_ERROR; } // 2.rebuild MatchIndex, remove deleted one SSyncIndexMgr* oldIndex = ths->pMatchIndex; ths->pMatchIndex = syncIndexMgrCreate(ths); + if (ths->pMatchIndex == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } syncIndexMgrCopyIfExist(ths->pMatchIndex, oldIndex, oldReplicasId); @@ -2778,6 +2858,11 @@ int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum SSyncIndexMgr* oldNextIndex = ths->pNextIndex; ths->pNextIndex = syncIndexMgrCreate(ths); + if (ths->pNextIndex == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; + TAOS_RETURN(code); + } syncIndexMgrCopyIfExist(ths->pNextIndex, oldNextIndex, oldReplicasId); @@ -2797,7 +2882,7 @@ int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum SSyncLogReplMgr* oldLogReplMgrs = NULL; int64_t length = sizeof(SSyncLogReplMgr) * (TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA); oldLogReplMgrs = taosMemoryMalloc(length); - if (NULL == oldLogReplMgrs) return -1; + if (NULL == oldLogReplMgrs) return TSDB_CODE_OUT_OF_MEMORY; memset(oldLogReplMgrs, 0, length); for (int i = 0; i < oldtotalReplicaNum; i++) { @@ -2805,7 +2890,10 @@ int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum } syncNodeLogReplDestroy(ths); - syncNodeLogReplInit(ths); + if ((code = syncNodeLogReplInit(ths)) != 0) { + taosMemoryFree(oldLogReplMgrs); + TAOS_RETURN(code); + } for (int i = 0; i < ths->totalReplicaNum; ++i) { for (int j = 0; j < oldtotalReplicaNum; j++) { @@ -2856,13 +2944,22 @@ int32_t syncNodeRebuildAndCopyIfExist(SSyncNode* ths, int32_t oldtotalReplicaNum } // 7.rebuild synctimer - syncNodeStopHeartbeatTimer(ths); - - for (int32_t i = 0; i < TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA; ++i) { - syncHbTimerInit(ths, &ths->peerHeartbeatTimerArr[i], ths->replicasId[i]); + if ((code = syncNodeStopHeartbeatTimer(ths)) != 0) { + taosMemoryFree(oldLogReplMgrs); + TAOS_RETURN(code); } - syncNodeStartHeartbeatTimer(ths); + for (int32_t i = 0; i < TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA; ++i) { + if ((code = syncHbTimerInit(ths, &ths->peerHeartbeatTimerArr[i], ths->replicasId[i])) != 0) { + taosMemoryFree(oldLogReplMgrs); + TAOS_RETURN(code); + } + } + + if ((code = syncNodeStartHeartbeatTimer(ths)) != 0) { + taosMemoryFree(oldLogReplMgrs); + TAOS_RETURN(code); + } // 8.rebuild peerStates SPeerState oldState[TSDB_MAX_REPLICA + TSDB_MAX_LEARNER_REPLICA] = {0}; @@ -2920,8 +3017,9 @@ void syncNodeResetPeerAndCfg(SSyncNode* ths) { } int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) { + int32_t code = 0; if (pEntry->originalRpcType != TDMT_SYNC_CONFIG_CHANGE) { - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } SMsgHead* head = (SMsgHead*)pEntry->data; @@ -2929,8 +3027,8 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) SAlterVnodeTypeReq req = {0}; if (tDeserializeSAlterVnodeReplicaReq(pReq, head->contLen, &req) != 0) { - terrno = TSDB_CODE_INVALID_MSG; - return -1; + code = TSDB_CODE_INVALID_MSG; + TAOS_RETURN(code); } SSyncCfg cfg = {0}; @@ -2994,12 +3092,12 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) // no need to change myNodeInfo - if (syncNodeRebuildPeerAndCfg(ths, &cfg) != 0) { - return -1; + if ((code = syncNodeRebuildPeerAndCfg(ths, &cfg)) != 0) { + TAOS_RETURN(code); }; - if (syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum) != 0) { - return -1; + if ((code = syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum)) != 0) { + TAOS_RETURN(code); }; } else { // remove myself // no need to do anything actually, to change the following to reduce distruptive server chance @@ -3016,8 +3114,8 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) ths->raftCfg.cfg.totalReplicaNum = 1; // change other - if (syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum) != 0) { - return -1; + if ((code = syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum)) != 0) { + TAOS_RETURN(code); } // change state @@ -3059,13 +3157,13 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) // no need to change myNodeInfo // change peer and cfg - if (syncNodeRebuildPeerAndCfg(ths, &cfg) != 0) { - return -1; + if ((code = syncNodeRebuildPeerAndCfg(ths, &cfg)) != 0) { + TAOS_RETURN(code); }; // change other - if (syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum) != 0) { - return -1; + if ((code = syncNodeRebuildAndCopyIfExist(ths, oldTotalReplicaNum)) != 0) { + TAOS_RETURN(code); }; // no need to change state @@ -3084,17 +3182,18 @@ int32_t syncNodeChangeConfig(SSyncNode* ths, SSyncRaftEntry* pEntry, char* str) syncNodeLogConfigInfo(ths, &cfg, "after config change"); - if (syncWriteCfgFile(ths) != 0) { + if ((code = syncWriteCfgFile(ths)) != 0) { sError("vgId:%d, failed to create sync cfg file", ths->vgId); - return -1; + TAOS_RETURN(code); }; - return 0; + TAOS_RETURN(code); } int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry) { int32_t code = -1; if (pEntry->dataLen < sizeof(SMsgHead)) { + code = TSDB_CODE_SYN_INTERNAL_ERROR; sError("vgId:%d, cannot append an invalid client request with no msg head. type:%s, dataLen:%d", ths->vgId, TMSG_INFO(pEntry->originalRpcType), pEntry->dataLen); syncEntryDestroy(pEntry); @@ -3102,7 +3201,7 @@ int32_t syncNodeAppend(SSyncNode* ths, SSyncRaftEntry* pEntry) { } // append to log buffer - if (syncLogBufferAppend(ths->pLogBuf, ths, pEntry) < 0) { + if ((code = syncLogBufferAppend(ths->pLogBuf, ths, pEntry)) < 0) { sError("vgId:%d, failed to enqueue sync log buffer, index:%" PRId64, ths->vgId, pEntry->index); ASSERT(terrno != 0); (void)syncFsmExecute(ths, ths->pFsm, ths->state, raftStoreGetTerm(ths), pEntry, terrno, false); @@ -3126,24 +3225,24 @@ _out:; if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && syncLogBufferCommit(ths->pLogBuf, ths, ths->assignedCommitIndex) < 0) { sError("vgId:%d, failed to commit until commitIndex:%" PRId64 "", ths->vgId, ths->commitIndex); - code = -1; + code = TSDB_CODE_SYN_INTERNAL_ERROR; } } // multi replica if (ths->replicaNum > 1) { - return code; + TAOS_RETURN(code); } // single replica (void)syncNodeUpdateCommitIndex(ths, matchIndex); - if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && syncLogBufferCommit(ths->pLogBuf, ths, ths->commitIndex) < 0) { + if (ths->fsmState != SYNC_FSM_STATE_INCOMPLETE && + (code = syncLogBufferCommit(ths->pLogBuf, ths, ths->commitIndex)) < 0) { sError("vgId:%d, failed to commit until commitIndex:%" PRId64 "", ths->vgId, ths->commitIndex); - code = -1; } - return code; + TAOS_RETURN(code); } bool syncNodeHeartbeatReplyTimeout(SSyncNode* pSyncNode) { @@ -3192,17 +3291,18 @@ bool syncNodeSnapshotRecving(SSyncNode* pSyncNode) { } static int32_t syncNodeAppendNoop(SSyncNode* ths) { + int32_t code = 0; SyncIndex index = syncLogBufferGetEndIndex(ths->pLogBuf); SyncTerm term = raftStoreGetTerm(ths); SSyncRaftEntry* pEntry = syncEntryBuildNoop(term, index, ths->vgId); if (pEntry == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + code = TSDB_CODE_OUT_OF_MEMORY; + TAOS_RETURN(code); } - int32_t ret = syncNodeAppend(ths, pEntry); - return 0; + code = syncNodeAppend(ths, pEntry); + TAOS_RETURN(code); } #ifdef BUILD_NO_CALL @@ -3328,13 +3428,14 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { } // reply - syncNodeSendMsgById(&pMsgReply->destId, ths, &rpcMsg); + TAOS_CHECK_RETURN(syncNodeSendMsgById(&pMsgReply->destId, ths, &rpcMsg)); if (resetElect) syncNodeResetElectTimer(ths); return 0; } int32_t syncNodeOnHeartbeatReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { + int32_t code = 0; const STraceId* trace = &pRpcMsg->info.traceId; char tbuf[40] = {0}; TRACE_TO_STR(trace, tbuf); @@ -3342,8 +3443,10 @@ int32_t syncNodeOnHeartbeatReply(SSyncNode* ths, const SRpcMsg* pRpcMsg) { SyncHeartbeatReply* pMsg = pRpcMsg->pCont; SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(ths, &pMsg->srcId); if (pMgr == NULL) { + code = TSDB_CODE_SYN_RETURN_VALUE_NULL; + if (terrno != 0) code = terrno; sError("vgId:%d, failed to get log repl mgr for the peer at addr 0x016%" PRIx64 "", ths->vgId, pMsg->srcId.addr); - return -1; + TAOS_RETURN(code); } int64_t tsMs = taosGetTimestampMs(); @@ -3424,6 +3527,11 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn pEntry = syncEntryBuildFromRpcMsg(pMsg, term, index); } + if (pEntry == NULL) { + sError("vgId:%d, failed to process client request since %s.", ths->vgId, terrstr()); + return TSDB_CODE_SYN_INTERNAL_ERROR; + } + // 1->2, config change is add in write thread, and will continue in sync thread // need save message for it if (pMsg->msgType == TDMT_SYNC_CONFIG_CHANGE) { @@ -3432,11 +3540,6 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn pEntry->seqNum = seqNum; } - if (pEntry == NULL) { - sError("vgId:%d, failed to process client request since %s.", ths->vgId, terrstr()); - return -1; - } - if (ths->state == TAOS_SYNC_STATE_LEADER || ths->state == TAOS_SYNC_STATE_ASSIGNED_LEADER) { if (pRetIndex) { (*pRetIndex) = index; @@ -3448,7 +3551,7 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn sError("vgId:%d, failed to check change config since %s.", ths->vgId, terrstr()); syncEntryDestroy(pEntry); pEntry = NULL; - return -1; + TAOS_RETURN(code); } if (code > 0) { @@ -3459,7 +3562,7 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn } syncEntryDestroy(pEntry); pEntry = NULL; - return -1; + TAOS_RETURN(code); } } @@ -3468,7 +3571,7 @@ int32_t syncNodeOnClientRequest(SSyncNode* ths, SRpcMsg* pMsg, SyncIndex* pRetIn } else { syncEntryDestroy(pEntry); pEntry = NULL; - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } } @@ -3506,7 +3609,7 @@ int32_t syncNodeUpdateNewConfigIndex(SSyncNode* ths, SSyncCfg* pNewCfg) { } } - return -1; + return TSDB_CODE_SYN_INTERNAL_ERROR; } bool syncNodeIsOptimizedOneReplica(SSyncNode* ths, SRpcMsg* pMsg) { diff --git a/source/libs/sync/src/syncMessage.c b/source/libs/sync/src/syncMessage.c index 9e035f60c2..1c67c12a98 100644 --- a/source/libs/sync/src/syncMessage.c +++ b/source/libs/sync/src/syncMessage.c @@ -25,8 +25,7 @@ int32_t syncBuildTimeout(SRpcMsg* pMsg, ESyncTimeoutType timeoutType, uint64_t l pMsg->msgType = (timeoutType == SYNC_TIMEOUT_ELECTION) ? TDMT_SYNC_TIMEOUT_ELECTION : TDMT_SYNC_TIMEOUT; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncTimeout* pTimeout = pMsg->pCont; @@ -43,13 +42,13 @@ int32_t syncBuildTimeout(SRpcMsg* pMsg, ESyncTimeoutType timeoutType, uint64_t l int32_t syncBuildClientRequest(SRpcMsg* pMsg, const SRpcMsg* pOriginal, uint64_t seqNum, bool isWeak, int32_t vgId) { int32_t bytes = sizeof(SyncClientRequest) + pOriginal->contLen; + pMsg->pCont = rpcMallocCont(bytes); + if (pMsg->pCont == NULL) { + return terrno = TSDB_CODE_OUT_OF_MEMORY; + } pMsg->msgType = TDMT_SYNC_CLIENT_REQUEST; pMsg->contLen = bytes; - if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; - } SyncClientRequest* pClientRequest = pMsg->pCont; pClientRequest->bytes = bytes; @@ -70,8 +69,7 @@ int32_t syncBuildClientRequestFromNoopEntry(SRpcMsg* pMsg, const SSyncRaftEntry* pMsg->msgType = TDMT_SYNC_CLIENT_REQUEST; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncClientRequest* pClientRequest = pMsg->pCont; @@ -91,8 +89,7 @@ int32_t syncBuildRequestVote(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_REQUEST_VOTE; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncRequestVote* pRequestVote = pMsg->pCont; @@ -108,8 +105,7 @@ int32_t syncBuildRequestVoteReply(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_REQUEST_VOTE_REPLY; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncRequestVoteReply* pRequestVoteReply = pMsg->pCont; @@ -125,8 +121,7 @@ int32_t syncBuildAppendEntries(SRpcMsg* pMsg, int32_t dataLen, int32_t vgId) { pMsg->msgType = TDMT_SYNC_APPEND_ENTRIES; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncAppendEntries* pAppendEntries = pMsg->pCont; @@ -143,8 +138,7 @@ int32_t syncBuildAppendEntriesReply(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_APPEND_ENTRIES_REPLY; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncAppendEntriesReply* pAppendEntriesReply = pMsg->pCont; @@ -161,8 +155,7 @@ int32_t syncBuildAppendEntriesFromRaftEntry(SSyncNode* pNode, SSyncRaftEntry* pE pRpcMsg->contLen = bytes; pRpcMsg->pCont = rpcMallocCont(pRpcMsg->contLen); if (pRpcMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncAppendEntries* pMsg = pRpcMsg->pCont; @@ -188,8 +181,7 @@ int32_t syncBuildHeartbeat(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_HEARTBEAT; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncHeartbeat* pHeartbeat = pMsg->pCont; @@ -205,8 +197,7 @@ int32_t syncBuildHeartbeatReply(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_HEARTBEAT_REPLY; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncHeartbeatReply* pHeartbeatReply = pMsg->pCont; @@ -222,8 +213,7 @@ int32_t syncBuildSnapshotSend(SRpcMsg* pMsg, int32_t dataLen, int32_t vgId) { pMsg->msgType = TDMT_SYNC_SNAPSHOT_SEND; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncSnapshotSend* pSnapshotSend = pMsg->pCont; @@ -240,8 +230,7 @@ int32_t syncBuildSnapshotSendRsp(SRpcMsg* pMsg, int32_t dataLen, int32_t vgId) { pMsg->msgType = TDMT_SYNC_SNAPSHOT_RSP; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncSnapshotRsp* pPreSnapshotRsp = pMsg->pCont; @@ -257,8 +246,7 @@ int32_t syncBuildLeaderTransfer(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_LEADER_TRANSFER; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncLeaderTransfer* pLeaderTransfer = pMsg->pCont; @@ -274,8 +262,7 @@ int32_t syncBuildLocalCmd(SRpcMsg* pMsg, int32_t vgId) { pMsg->msgType = TDMT_SYNC_LOCAL_CMD; pMsg->contLen = bytes; if (pMsg->pCont == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; - return -1; + return terrno = TSDB_CODE_OUT_OF_MEMORY; } SyncLocalCmd* pLocalCmd = pMsg->pCont; diff --git a/source/libs/sync/src/syncRaftLog.c b/source/libs/sync/src/syncRaftLog.c index 57c70d8df1..ecca777806 100644 --- a/source/libs/sync/src/syncRaftLog.c +++ b/source/libs/sync/src/syncRaftLog.c @@ -63,12 +63,12 @@ SSyncLogStore* logStoreCreate(SSyncNode* pSyncNode) { pData->pWal = pSyncNode->pWal; ASSERT(pData->pWal != NULL); - taosThreadMutexInit(&(pData->mutex), NULL); + (void)taosThreadMutexInit(&(pData->mutex), NULL); pData->pWalHandle = walOpenReader(pData->pWal, NULL, 0); if (!pData->pWalHandle) { taosMemoryFree(pLogStore); taosLRUCacheCleanup(pLogStore->pCache); - taosThreadMutexDestroy(&(pData->mutex)); + (void)taosThreadMutexDestroy(&(pData->mutex)); terrno = TSDB_CODE_OUT_OF_MEMORY; return NULL; } @@ -96,13 +96,13 @@ void logStoreDestory(SSyncLogStore* pLogStore) { if (pLogStore != NULL) { SSyncLogStoreData* pData = pLogStore->data; - taosThreadMutexLock(&(pData->mutex)); + (void)taosThreadMutexLock(&(pData->mutex)); if (pData->pWalHandle != NULL) { walCloseReader(pData->pWalHandle); pData->pWalHandle = NULL; } - taosThreadMutexUnlock(&(pData->mutex)); - taosThreadMutexDestroy(&(pData->mutex)); + (void)taosThreadMutexUnlock(&(pData->mutex)); + (void)taosThreadMutexDestroy(&(pData->mutex)); taosMemoryFree(pLogStore->data); @@ -261,12 +261,12 @@ int32_t raftLogGetEntry(struct SSyncLogStore* pLogStore, SyncIndex index, SSyncR *ppEntry = NULL; int64_t ts1 = taosGetTimestampNs(); - taosThreadMutexLock(&(pData->mutex)); + (void)taosThreadMutexLock(&(pData->mutex)); SWalReader* pWalHandle = pData->pWalHandle; if (pWalHandle == NULL) { sError("vgId:%d, wal handle is NULL", pData->pSyncNode->vgId); - taosThreadMutexUnlock(&(pData->mutex)); + (void)taosThreadMutexUnlock(&(pData->mutex)); TAOS_RETURN(TSDB_CODE_SYN_INTERNAL_ERROR); } @@ -297,7 +297,7 @@ int32_t raftLogGetEntry(struct SSyncLogStore* pLogStore, SyncIndex index, SSyncR terrno = saveErr; */ - taosThreadMutexUnlock(&(pData->mutex)); + (void)taosThreadMutexUnlock(&(pData->mutex)); TAOS_RETURN(code); } @@ -311,7 +311,7 @@ int32_t raftLogGetEntry(struct SSyncLogStore* pLogStore, SyncIndex index, SSyncR (*ppEntry)->term = pWalHandle->pHead->head.syncMeta.term; (*ppEntry)->index = index; ASSERT((*ppEntry)->dataLen == pWalHandle->pHead->head.bodyLen); - memcpy((*ppEntry)->data, pWalHandle->pHead->head.body, pWalHandle->pHead->head.bodyLen); + (void)memcpy((*ppEntry)->data, pWalHandle->pHead->head.body, pWalHandle->pHead->head.bodyLen); /* int32_t saveErr = terrno; @@ -319,7 +319,7 @@ int32_t raftLogGetEntry(struct SSyncLogStore* pLogStore, SyncIndex index, SSyncR terrno = saveErr; */ - taosThreadMutexUnlock(&(pData->mutex)); + (void)taosThreadMutexUnlock(&(pData->mutex)); int64_t ts4 = taosGetTimestampNs(); int64_t tsElapsed = ts4 - ts1; diff --git a/source/libs/sync/src/syncRaftStore.c b/source/libs/sync/src/syncRaftStore.c index 7f702c3766..cb07a63eed 100644 --- a/source/libs/sync/src/syncRaftStore.c +++ b/source/libs/sync/src/syncRaftStore.c @@ -152,52 +152,52 @@ _OVER: } int32_t raftStoreOpen(SSyncNode *pNode) { - taosThreadMutexInit(&pNode->raftStore.mutex, NULL); + (void)taosThreadMutexInit(&pNode->raftStore.mutex, NULL); return raftStoreReadFile(pNode); } -void raftStoreClose(SSyncNode *pNode) { taosThreadMutexDestroy(&pNode->raftStore.mutex); } +void raftStoreClose(SSyncNode *pNode) { (void)taosThreadMutexDestroy(&pNode->raftStore.mutex); } bool raftStoreHasVoted(SSyncNode *pNode) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); bool b = syncUtilEmptyId(&pNode->raftStore.voteFor); - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); return (!b); } void raftStoreVote(SSyncNode *pNode, SRaftId *pRaftId) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); pNode->raftStore.voteFor = *pRaftId; (void)raftStoreWriteFile(pNode); - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); } void raftStoreClearVote(SSyncNode *pNode) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); pNode->raftStore.voteFor = EMPTY_RAFT_ID; (void)raftStoreWriteFile(pNode); - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); } void raftStoreNextTerm(SSyncNode *pNode) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); pNode->raftStore.currentTerm++; (void)raftStoreWriteFile(pNode); - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); } void raftStoreSetTerm(SSyncNode *pNode, SyncTerm term) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); if (pNode->raftStore.currentTerm < term) { pNode->raftStore.currentTerm = term; (void)raftStoreWriteFile(pNode); } - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); } SyncTerm raftStoreGetTerm(SSyncNode *pNode) { - taosThreadMutexLock(&pNode->raftStore.mutex); + (void)taosThreadMutexLock(&pNode->raftStore.mutex); SyncTerm term = pNode->raftStore.currentTerm; - taosThreadMutexUnlock(&pNode->raftStore.mutex); + (void)taosThreadMutexUnlock(&pNode->raftStore.mutex); return term; } diff --git a/source/libs/sync/src/syncReplication.c b/source/libs/sync/src/syncReplication.c index dfe9f51af2..40a359379a 100644 --- a/source/libs/sync/src/syncReplication.c +++ b/source/libs/sync/src/syncReplication.c @@ -48,19 +48,19 @@ int32_t syncNodeReplicateReset(SSyncNode* pNode, SRaftId* pDestId) { SSyncLogBuffer* pBuf = pNode->pLogBuf; - taosThreadMutexLock(&pBuf->mutex); + (void)taosThreadMutexLock(&pBuf->mutex); SSyncLogReplMgr* pMgr = syncNodeGetLogReplMgr(pNode, pDestId); syncLogReplReset(pMgr); - taosThreadMutexUnlock(&pBuf->mutex); + (void)taosThreadMutexUnlock(&pBuf->mutex); TAOS_RETURN(TSDB_CODE_SUCCESS); } int32_t syncNodeReplicate(SSyncNode* pNode) { SSyncLogBuffer* pBuf = pNode->pLogBuf; - taosThreadMutexLock(&pBuf->mutex); + (void)taosThreadMutexLock(&pBuf->mutex); int32_t ret = syncNodeReplicateWithoutLock(pNode); - taosThreadMutexUnlock(&pBuf->mutex); + (void)taosThreadMutexUnlock(&pBuf->mutex); TAOS_RETURN(ret); } diff --git a/source/libs/wal/inc/walInt.h b/source/libs/wal/inc/walInt.h index d493061bdc..1886541d62 100644 --- a/source/libs/wal/inc/walInt.h +++ b/source/libs/wal/inc/walInt.h @@ -114,11 +114,11 @@ static inline SWalFileInfo* walGetCurFileInfo(SWal* pWal) { } static inline void walBuildLogName(SWal* pWal, int64_t fileFirstVer, char* buf) { - sprintf(buf, "%s/%020" PRId64 "." WAL_LOG_SUFFIX, pWal->path, fileFirstVer); + TAOS_UNUSED(sprintf(buf, "%s/%020" PRId64 "." WAL_LOG_SUFFIX, pWal->path, fileFirstVer)); } static inline void walBuildIdxName(SWal* pWal, int64_t fileFirstVer, char* buf) { - sprintf(buf, "%s/%020" PRId64 "." WAL_INDEX_SUFFIX, pWal->path, fileFirstVer); + TAOS_UNUSED(sprintf(buf, "%s/%020" PRId64 "." WAL_INDEX_SUFFIX, pWal->path, fileFirstVer)); } static inline int walValidHeadCksum(SWalCkHead* pHead) { diff --git a/source/libs/wal/src/walMeta.c b/source/libs/wal/src/walMeta.c index df9ef041c6..f953f50aa7 100644 --- a/source/libs/wal/src/walMeta.c +++ b/source/libs/wal/src/walMeta.c @@ -57,7 +57,7 @@ static FORCE_INLINE int32_t walScanLogGetLastVer(SWal* pWal, int32_t fileIdx, in walBuildLogName(pWal, pFileInfo->firstVer, fnameStr); int64_t fileSize = 0; - taosStatFile(fnameStr, &fileSize, NULL, NULL); + (void)taosStatFile(fnameStr, &fileSize, NULL, NULL); TdFilePtr pFile = taosOpenFile(fnameStr, TD_FILE_READ | TD_FILE_WRITE); if (pFile == NULL) { @@ -362,7 +362,7 @@ static int32_t walTrimIdxFile(SWal* pWal, int32_t fileIdx) { walBuildIdxName(pWal, pFileInfo->firstVer, fnameStr); int64_t fileSize = 0; - taosStatFile(fnameStr, &fileSize, NULL, NULL); + (void)taosStatFile(fnameStr, &fileSize, NULL, NULL); int64_t records = TMAX(0, pFileInfo->lastVer - pFileInfo->firstVer + 1); int64_t lastEndOffset = records * sizeof(SWalIdxEntry); @@ -378,8 +378,8 @@ static int32_t walTrimIdxFile(SWal* pWal, int32_t fileIdx) { wInfo("vgId:%d, trim idx file. file: %s, size: %" PRId64 ", offset: %" PRId64, pWal->cfg.vgId, fnameStr, fileSize, lastEndOffset); - taosFtruncateFile(pFile, lastEndOffset); - taosCloseFile(&pFile); + (void)taosFtruncateFile(pFile, lastEndOffset); + (void)taosCloseFile(&pFile); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -392,8 +392,8 @@ int32_t walCheckAndRepairMeta(SWal* pWal) { regex_t logRegPattern; regex_t idxRegPattern; - regcomp(&logRegPattern, logPattern, REG_EXTENDED); - regcomp(&idxRegPattern, idxPattern, REG_EXTENDED); + (void)regcomp(&logRegPattern, logPattern, REG_EXTENDED); + (void)regcomp(&idxRegPattern, idxPattern, REG_EXTENDED); TdDirPtr pDir = taosOpenDir(pWal->path); if (pDir == NULL) { @@ -412,13 +412,13 @@ int32_t walCheckAndRepairMeta(SWal* pWal) { int code = regexec(&logRegPattern, name, 0, NULL, 0); if (code == 0) { SWalFileInfo fileInfo; - memset(&fileInfo, -1, sizeof(SWalFileInfo)); - sscanf(name, "%" PRId64 ".log", &fileInfo.firstVer); - taosArrayPush(actualLog, &fileInfo); + (void)memset(&fileInfo, -1, sizeof(SWalFileInfo)); + (void)sscanf(name, "%" PRId64 ".log", &fileInfo.firstVer); + (void)taosArrayPush(actualLog, &fileInfo); } } - taosCloseDir(&pDir); + (void)taosCloseDir(&pDir); regfree(&logRegPattern); regfree(&idxRegPattern); @@ -549,7 +549,7 @@ static int32_t walCheckAndRepairIdxFile(SWal* pWal, int32_t fileIdx) { TdFilePtr pIdxFile = NULL; SWalIdxEntry idxEntry = {.ver = pFileInfo->firstVer - 1, .offset = -sizeof(SWalCkHead)}; SWalCkHead ckHead; - memset(&ckHead, 0, sizeof(ckHead)); + (void)memset(&ckHead, 0, sizeof(ckHead)); ckHead.head.version = idxEntry.ver; pIdxFile = taosOpenFile(fnameStr, TD_FILE_READ | TD_FILE_WRITE | TD_FILE_CREATE); @@ -675,7 +675,7 @@ _err: int64_t walGetVerRetention(SWal* pWal, int64_t bytes) { int64_t ver = -1; int64_t totSize = 0; - taosThreadMutexLock(&pWal->mutex); + (void)taosThreadMutexLock(&pWal->mutex); int32_t fileIdx = taosArrayGetSize(pWal->fileInfoSet); while (--fileIdx) { SWalFileInfo* pInfo = taosArrayGet(pWal->fileInfoSet, fileIdx); @@ -685,7 +685,7 @@ int64_t walGetVerRetention(SWal* pWal, int64_t bytes) { } totSize += pInfo->fileSize; } - taosThreadMutexUnlock(&pWal->mutex); + (void)taosThreadMutexUnlock(&pWal->mutex); return ver + 1; } @@ -727,7 +727,7 @@ int32_t walRollFileInfo(SWal* pWal) { pNewInfo->closeTs = -1; pNewInfo->fileSize = 0; pNewInfo->syncedOffset = 0; - taosArrayPush(pArray, pNewInfo); + (void)taosArrayPush(pArray, pNewInfo); taosMemoryFree(pNewInfo); TAOS_RETURN(TSDB_CODE_SUCCESS); @@ -753,21 +753,21 @@ int32_t walMetaSerialize(SWal* pWal, char** serialized) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - cJSON_AddItemToObject(pRoot, "meta", pMeta); - sprintf(buf, "%" PRId64, pWal->vers.firstVer); - cJSON_AddStringToObject(pMeta, "firstVer", buf); - sprintf(buf, "%" PRId64, pWal->vers.snapshotVer); - cJSON_AddStringToObject(pMeta, "snapshotVer", buf); - sprintf(buf, "%" PRId64, pWal->vers.commitVer); - cJSON_AddStringToObject(pMeta, "commitVer", buf); - sprintf(buf, "%" PRId64, pWal->vers.lastVer); - cJSON_AddStringToObject(pMeta, "lastVer", buf); + (void)cJSON_AddItemToObject(pRoot, "meta", pMeta); + (void)sprintf(buf, "%" PRId64, pWal->vers.firstVer); + (void)cJSON_AddStringToObject(pMeta, "firstVer", buf); + (void)sprintf(buf, "%" PRId64, pWal->vers.snapshotVer); + (void)cJSON_AddStringToObject(pMeta, "snapshotVer", buf); + (void)sprintf(buf, "%" PRId64, pWal->vers.commitVer); + (void)cJSON_AddStringToObject(pMeta, "commitVer", buf); + (void)sprintf(buf, "%" PRId64, pWal->vers.lastVer); + (void)cJSON_AddStringToObject(pMeta, "lastVer", buf); - cJSON_AddItemToObject(pRoot, "files", pFiles); + (void)cJSON_AddItemToObject(pRoot, "files", pFiles); SWalFileInfo* pData = pWal->fileInfoSet->pData; for (int i = 0; i < sz; i++) { SWalFileInfo* pInfo = &pData[i]; - cJSON_AddItemToArray(pFiles, pField = cJSON_CreateObject()); + (void)cJSON_AddItemToArray(pFiles, pField = cJSON_CreateObject()); if (pField == NULL) { cJSON_Delete(pRoot); @@ -775,16 +775,16 @@ int32_t walMetaSerialize(SWal* pWal, char** serialized) { } // cjson only support int32_t or double // string are used to prohibit the loss of precision - sprintf(buf, "%" PRId64, pInfo->firstVer); - cJSON_AddStringToObject(pField, "firstVer", buf); - sprintf(buf, "%" PRId64, pInfo->lastVer); - cJSON_AddStringToObject(pField, "lastVer", buf); - sprintf(buf, "%" PRId64, pInfo->createTs); - cJSON_AddStringToObject(pField, "createTs", buf); - sprintf(buf, "%" PRId64, pInfo->closeTs); - cJSON_AddStringToObject(pField, "closeTs", buf); - sprintf(buf, "%" PRId64, pInfo->fileSize); - cJSON_AddStringToObject(pField, "fileSize", buf); + (void)sprintf(buf, "%" PRId64, pInfo->firstVer); + (void)cJSON_AddStringToObject(pField, "firstVer", buf); + (void)sprintf(buf, "%" PRId64, pInfo->lastVer); + (void)cJSON_AddStringToObject(pField, "lastVer", buf); + (void)sprintf(buf, "%" PRId64, pInfo->createTs); + (void)cJSON_AddStringToObject(pField, "createTs", buf); + (void)sprintf(buf, "%" PRId64, pInfo->closeTs); + (void)cJSON_AddStringToObject(pField, "closeTs", buf); + (void)sprintf(buf, "%" PRId64, pInfo->fileSize); + (void)cJSON_AddStringToObject(pField, "fileSize", buf); } char* pSerialized = cJSON_Print(pRoot); cJSON_Delete(pRoot); @@ -818,7 +818,7 @@ int32_t walMetaDeserialize(SWal* pWal, const char* bytes) { int sz = cJSON_GetArraySize(pFiles); // deserialize SArray* pArray = pWal->fileInfoSet; - taosArrayEnsureCap(pArray, sz); + (void)taosArrayEnsureCap(pArray, sz); for (int i = 0; i < sz; i++) { pInfoJson = cJSON_GetArrayItem(pFiles, i); @@ -841,7 +841,7 @@ int32_t walMetaDeserialize(SWal* pWal, const char* bytes) { pField = cJSON_GetObjectItem(pInfoJson, "fileSize"); if (!pField) goto _err; info.fileSize = atoll(cJSON_GetStringValue(pField)); - taosArrayPush(pArray, &info); + (void)taosArrayPush(pArray, &info); } pWal->fileInfoSet = pArray; pWal->writeCur = sz - 1; @@ -856,7 +856,7 @@ _err: static int walFindCurMetaVer(SWal* pWal) { const char* pattern = "^meta-ver[0-9]+$"; regex_t walMetaRegexPattern; - regcomp(&walMetaRegexPattern, pattern, REG_EXTENDED); + (void)regcomp(&walMetaRegexPattern, pattern, REG_EXTENDED); TdDirPtr pDir = taosOpenDir(pWal->path); if (pDir == NULL) { @@ -872,13 +872,13 @@ static int walFindCurMetaVer(SWal* pWal) { char* name = taosDirEntryBaseName(taosGetDirEntryName(pDirEntry)); int code = regexec(&walMetaRegexPattern, name, 0, NULL, 0); if (code == 0) { - sscanf(name, "meta-ver%d", &metaVer); + (void)sscanf(name, "meta-ver%d", &metaVer); wDebug("vgId:%d, wal find current meta: %s is the meta file, ver %d", pWal->cfg.vgId, name, metaVer); break; } wDebug("vgId:%d, wal find current meta: %s is not meta file", pWal->cfg.vgId, name); } - taosCloseDir(&pDir); + (void)taosCloseDir(&pDir); regfree(&walMetaRegexPattern); return metaVer; } @@ -961,8 +961,8 @@ int32_t walSaveMeta(SWal* pWal) { // delete old file if (metaVer > -1) { - walBuildMetaName(pWal, metaVer, fnameStr); - taosRemoveFile(fnameStr); + (void)walBuildMetaName(pWal, metaVer, fnameStr); + (void)taosRemoveFile(fnameStr); } taosMemoryFree(serialized); @@ -984,10 +984,10 @@ int32_t walLoadMeta(SWal* pWal) { TAOS_RETURN(TSDB_CODE_FAILED); } char fnameStr[WAL_FILE_LEN]; - walBuildMetaName(pWal, metaVer, fnameStr); + (void)walBuildMetaName(pWal, metaVer, fnameStr); // read metafile int64_t fileSize = 0; - taosStatFile(fnameStr, &fileSize, NULL, NULL); + (void)taosStatFile(fnameStr, &fileSize, NULL, NULL); if (fileSize == 0) { (void)taosRemoveFile(fnameStr); wDebug("vgId:%d, wal find empty meta ver %d", pWal->cfg.vgId, metaVer); @@ -999,7 +999,7 @@ int32_t walLoadMeta(SWal* pWal) { if (buf == NULL) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - memset(buf, 0, size + 5); + (void)memset(buf, 0, size + 5); TdFilePtr pFile = taosOpenFile(fnameStr, TD_FILE_READ); if (pFile == NULL) { taosMemoryFree(buf); @@ -1007,7 +1007,7 @@ int32_t walLoadMeta(SWal* pWal) { TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } if (taosReadFile(pFile, buf, size) != size) { - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); taosMemoryFree(buf); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); @@ -1018,7 +1018,7 @@ int32_t walLoadMeta(SWal* pWal) { wError("failed to deserialize wal meta. file:%s", fnameStr); code = TSDB_CODE_WAL_FILE_CORRUPTED; } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); taosMemoryFree(buf); TAOS_RETURN(code); @@ -1028,6 +1028,6 @@ int32_t walRemoveMeta(SWal* pWal) { int metaVer = walFindCurMetaVer(pWal); if (metaVer == -1) return 0; char fnameStr[WAL_FILE_LEN]; - walBuildMetaName(pWal, metaVer, fnameStr); + (void)walBuildMetaName(pWal, metaVer, fnameStr); return taosRemoveFile(fnameStr); } diff --git a/source/libs/wal/src/walMgmt.c b/source/libs/wal/src/walMgmt.c index bf875b4e09..9da3207471 100644 --- a/source/libs/wal/src/walMgmt.c +++ b/source/libs/wal/src/walMgmt.c @@ -33,7 +33,7 @@ static int32_t walCreateThread(); static void walStopThread(); static void walFreeObj(void *pWal); -int64_t walGetSeq() { return (int64_t)atomic_load_32(&tsWal.seq); } +int64_t walGetSeq() { return (int64_t)atomic_load_32((volatile int32_t *)&tsWal.seq); } int32_t walInit() { int8_t old; @@ -69,7 +69,7 @@ void walCleanUp() { if (old == 1) { walStopThread(); - taosCloseRef(tsWal.refSetId); + TAOS_UNUSED(taosCloseRef(tsWal.refSetId)); wInfo("wal module is cleaned up"); atomic_store_8(&tsWal.inited, 0); } @@ -89,7 +89,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { } // set config - memcpy(&pWal->cfg, pCfg, sizeof(SWalCfg)); + TAOS_UNUSED(memcpy(&pWal->cfg, pCfg, sizeof(SWalCfg))); pWal->fsyncSeq = pCfg->fsyncPeriod / 1000; if (pWal->cfg.retentionSize > 0) { @@ -140,7 +140,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { pWal->lastRollSeq = -1; // init write buffer - memset(&pWal->writeHead, 0, sizeof(SWalCkHead)); + TAOS_UNUSED(memset(&pWal->writeHead, 0, sizeof(SWalCkHead))); pWal->writeHead.head.protoVer = WAL_PROTO_VER; pWal->writeHead.magic = WAL_MAGIC; @@ -171,7 +171,7 @@ SWal *walOpen(const char *path, SWalCfg *pCfg) { _err: taosArrayDestroy(pWal->fileInfoSet); taosHashCleanup(pWal->pRefHash); - taosThreadMutexDestroy(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexDestroy(&pWal->mutex)); taosMemoryFreeClear(pWal); return NULL; @@ -207,19 +207,19 @@ int32_t walAlter(SWal *pWal, SWalCfg *pCfg) { int32_t walPersist(SWal *pWal) { int32_t code = 0; - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); code = walSaveMeta(pWal); - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(code); } void walClose(SWal *pWal) { - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); (void)walSaveMeta(pWal); - taosCloseFile(&pWal->pLogFile); + TAOS_UNUSED(taosCloseFile(&pWal->pLogFile)); pWal->pLogFile = NULL; - taosCloseFile(&pWal->pIdxFile); + (void)taosCloseFile(&pWal->pIdxFile); pWal->pIdxFile = NULL; taosArrayDestroy(pWal->fileInfoSet); pWal->fileInfoSet = NULL; @@ -235,22 +235,22 @@ void walClose(SWal *pWal) { } taosHashCleanup(pWal->pRefHash); pWal->pRefHash = NULL; - taosThreadMutexUnlock(&pWal->mutex); + (void)taosThreadMutexUnlock(&pWal->mutex); if (pWal->cfg.level == TAOS_WAL_SKIP) { wInfo("vgId:%d, remove all wals, path:%s", pWal->cfg.vgId, pWal->path); taosRemoveDir(pWal->path); - taosMkDir(pWal->path); + (void)taosMkDir(pWal->path); } - taosRemoveRef(tsWal.refSetId, pWal->refId); + (void)taosRemoveRef(tsWal.refSetId, pWal->refId); } static void walFreeObj(void *wal) { SWal *pWal = wal; wDebug("vgId:%d, wal:%p is freed", pWal->cfg.vgId, pWal); - taosThreadMutexDestroy(&pWal->mutex); + (void)taosThreadMutexDestroy(&pWal->mutex); taosMemoryFreeClear(pWal); } @@ -259,7 +259,7 @@ static bool walNeedFsync(SWal *pWal) { return false; } - if (atomic_load_32(&tsWal.seq) % pWal->fsyncSeq == 0) { + if (atomic_load_32((volatile int32_t *)&tsWal.seq) % pWal->fsyncSeq == 0) { return true; } @@ -268,7 +268,7 @@ static bool walNeedFsync(SWal *pWal) { static void walUpdateSeq() { taosMsleep(WAL_REFRESH_MS); - atomic_add_fetch_32(&tsWal.seq, 1); + (void)atomic_add_fetch_32((volatile int32_t *)&tsWal.seq, 1); } static void walFsyncAll() { @@ -276,7 +276,7 @@ static void walFsyncAll() { while (pWal) { if (walNeedFsync(pWal)) { wTrace("vgId:%d, do fsync, level:%d seq:%d rseq:%d", pWal->cfg.vgId, pWal->cfg.level, pWal->fsyncSeq, - atomic_load_32(&tsWal.seq)); + atomic_load_32((volatile int32_t *)&tsWal.seq)); int32_t code = taosFsyncFile(pWal->pLogFile); if (code != 0) { wError("vgId:%d, file:%" PRId64 ".log, failed to fsync since %s", pWal->cfg.vgId, walGetLastFileFirstVer(pWal), @@ -301,8 +301,8 @@ static void *walThreadFunc(void *param) { static int32_t walCreateThread() { TdThreadAttr thAttr; - taosThreadAttrInit(&thAttr); - taosThreadAttrSetDetachState(&thAttr, PTHREAD_CREATE_JOINABLE); + (void)taosThreadAttrInit(&thAttr); + (void)taosThreadAttrSetDetachState(&thAttr, PTHREAD_CREATE_JOINABLE); if (taosThreadCreate(&tsWal.thread, &thAttr, walThreadFunc, NULL) != 0) { wError("failed to create wal thread since %s", strerror(errno)); @@ -310,7 +310,7 @@ static int32_t walCreateThread() { TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } - taosThreadAttrDestroy(&thAttr); + (void)taosThreadAttrDestroy(&thAttr); wDebug("wal thread is launched, thread:0x%08" PRIx64, taosGetPthreadId(tsWal.thread)); TAOS_RETURN(TSDB_CODE_SUCCESS); @@ -320,7 +320,7 @@ static void walStopThread() { atomic_store_8(&tsWal.stop, 1); if (taosCheckPthreadValid(tsWal.thread)) { - taosThreadJoin(tsWal.thread, NULL); + (void)taosThreadJoin(tsWal.thread, NULL); taosThreadClear(&tsWal.thread); } diff --git a/source/libs/wal/src/walRead.c b/source/libs/wal/src/walRead.c index 23e3991d8f..deb5a07672 100644 --- a/source/libs/wal/src/walRead.c +++ b/source/libs/wal/src/walRead.c @@ -41,7 +41,7 @@ SWalReader *walOpenReader(SWal *pWal, SWalFilterCond *cond, int64_t id) { pReader->cond.enableRef = 0; } - taosThreadMutexInit(&pReader->mutex, NULL); + TAOS_UNUSED(taosThreadMutexInit(&pReader->mutex, NULL)); pReader->pHead = taosMemoryMalloc(sizeof(SWalCkHead)); if (pReader->pHead == NULL) { @@ -60,8 +60,8 @@ SWalReader *walOpenReader(SWal *pWal, SWalFilterCond *cond, int64_t id) { void walCloseReader(SWalReader *pReader) { if (pReader == NULL) return; - taosCloseFile(&pReader->pIdxFile); - taosCloseFile(&pReader->pLogFile); + TAOS_UNUSED(taosCloseFile(&pReader->pIdxFile)); + TAOS_UNUSED(taosCloseFile(&pReader->pLogFile)); taosMemoryFreeClear(pReader->pHead); taosMemoryFree(pReader); } @@ -115,9 +115,9 @@ void walReaderValidVersionRange(SWalReader *pReader, int64_t *sver, int64_t *eve void walReaderVerifyOffset(SWalReader *pWalReader, STqOffsetVal *pOffset) { // if offset version is small than first version , let's seek to first version - taosThreadMutexLock(&pWalReader->pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWalReader->pWal->mutex)); int64_t firstVer = walGetFirstVer((pWalReader)->pWal); - taosThreadMutexUnlock(&pWalReader->pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWalReader->pWal->mutex)); if (pOffset->version < firstVer) { pOffset->version = firstVer; @@ -167,8 +167,8 @@ static int32_t walReadSeekFilePos(SWalReader *pReader, int64_t fileFirstVer, int static int32_t walReadChangeFile(SWalReader *pReader, int64_t fileFirstVer) { char fnameStr[WAL_FILE_LEN] = {0}; - taosCloseFile(&pReader->pIdxFile); - taosCloseFile(&pReader->pLogFile); + TAOS_UNUSED(taosCloseFile(&pReader->pIdxFile)); + TAOS_UNUSED(taosCloseFile(&pReader->pLogFile)); walBuildLogName(pReader->pWal, fileFirstVer, fnameStr); TdFilePtr pLogFile = taosOpenFile(fnameStr, TD_FILE_READ); @@ -393,13 +393,13 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { TAOS_RETURN(TSDB_CODE_WAL_LOG_NOT_EXIST); } - taosThreadMutexLock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pReader->mutex)); if (pReader->curVersion != ver) { code = walReaderSeekVer(pReader, ver); if (code) { wError("vgId:%d, unexpected wal log, index:%" PRId64 ", since %s", pReader->pWal->cfg.vgId, ver, terrstr()); - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(code); } @@ -414,7 +414,7 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { } else if (contLen == 0 && !seeked) { code = walReadSeekVerImpl(pReader, ver); if (code) { - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(code); } @@ -423,7 +423,7 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { } else { wError("vgId:%d, failed to read WAL record head, index:%" PRId64 ", from log file since %s", pReader->pWal->cfg.vgId, ver, terrstr()); - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); if (contLen < 0) { TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); @@ -437,7 +437,7 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { if (code != 0) { wError("vgId:%d, unexpected wal log, index:%" PRId64 ", since head checksum not passed", pReader->pWal->cfg.vgId, ver); - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } @@ -453,7 +453,7 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { if (pReader->capacity < cryptedBodyLen) { SWalCkHead *ptr = (SWalCkHead *)taosMemoryRealloc(pReader->pHead, sizeof(SWalCkHead) + cryptedBodyLen); if (ptr == NULL) { - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } @@ -464,7 +464,7 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { if ((contLen = taosReadFile(pReader->pLogFile, pReader->pHead->head.body, cryptedBodyLen)) != cryptedBodyLen) { wError("vgId:%d, failed to read WAL record body, index:%" PRId64 ", from log file since %s", pReader->pWal->cfg.vgId, ver, terrstr()); - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); if (contLen < 0) { TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); @@ -477,14 +477,14 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { wError("vgId:%d, unexpected wal log, index:%" PRId64 ", read request index:%" PRId64, pReader->pWal->cfg.vgId, pReader->pHead->head.version, ver); // pReader->curInvalid = 1; - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } code = decryptBody(&pReader->pWal->cfg, pReader->pHead, plainBodyLen, __FUNCTION__); if (code) { - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(code); } @@ -498,13 +498,13 @@ int32_t walReadVer(SWalReader *pReader, int64_t ver) { wError("checksum written into log:%u, checksum calculated:%u", logCkSum, readCkSum); // pReader->curInvalid = 1; - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } pReader->curVersion++; - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -523,13 +523,13 @@ int32_t decryptBody(SWalCfg *cfg, SWalCkHead *pHead, int32_t plainBodyLen, const opts.source = pHead->head.body; opts.result = newBody; opts.unitLen = 16; - strncpy(opts.key, cfg->encryptKey, 16); + TAOS_UNUSED(strncpy((char *)opts.key, cfg->encryptKey, 16)); int32_t count = CBC_Decrypt(&opts); // wDebug("CBC_Decrypt cryptedBodyLen:%d, plainBodyLen:%d, %s", count, plainBodyLen, func); - memcpy(pHead->head.body, newBody, plainBodyLen); + TAOS_UNUSED(memcpy(pHead->head.body, newBody, plainBodyLen)); taosMemoryFree(newBody); } @@ -538,10 +538,10 @@ int32_t decryptBody(SWalCfg *cfg, SWalCkHead *pHead, int32_t plainBodyLen, const } void walReadReset(SWalReader *pReader) { - taosThreadMutexLock(&pReader->mutex); - taosCloseFile(&pReader->pIdxFile); - taosCloseFile(&pReader->pLogFile); + TAOS_UNUSED(taosThreadMutexLock(&pReader->mutex)); + TAOS_UNUSED(taosCloseFile(&pReader->pIdxFile)); + TAOS_UNUSED(taosCloseFile(&pReader->pLogFile)); pReader->curFileFirstVer = -1; pReader->curVersion = -1; - taosThreadMutexUnlock(&pReader->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pReader->mutex)); } diff --git a/source/libs/wal/src/walRef.c b/source/libs/wal/src/walRef.c index ecca876c0d..579921a7e0 100644 --- a/source/libs/wal/src/walRef.c +++ b/source/libs/wal/src/walRef.c @@ -61,34 +61,34 @@ int32_t walSetRefVer(SWalRef *pRef, int64_t ver) { SWal *pWal = pRef->pWal; wDebug("vgId:%d, wal ref version %" PRId64 ", refId %" PRId64, pWal->cfg.vgId, ver, pRef->refId); if (pRef->refVer != ver) { - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); if (ver < pWal->vers.firstVer || ver > pWal->vers.lastVer) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_WAL_INVALID_VER); } pRef->refVer = ver; - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); } TAOS_RETURN(TSDB_CODE_SUCCESS); } void walRefFirstVer(SWal *pWal, SWalRef *pRef) { - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); pRef->refVer = pWal->vers.firstVer; - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); wDebug("vgId:%d, wal ref version %" PRId64 " for first", pWal->cfg.vgId, pRef->refVer); } void walRefLastVer(SWal *pWal, SWalRef *pRef) { - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); pRef->refVer = pWal->vers.lastVer; - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); wDebug("vgId:%d, wal ref version %" PRId64 " for last", pWal->cfg.vgId, pRef->refVer); } diff --git a/source/libs/wal/src/walWrite.c b/source/libs/wal/src/walWrite.c index 1053b7a273..dc3b2df52c 100644 --- a/source/libs/wal/src/walWrite.c +++ b/source/libs/wal/src/walWrite.c @@ -23,7 +23,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { int32_t code = 0; - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); wInfo("vgId:%d, restore from snapshot, version %" PRId64, pWal->cfg.vgId, ver); @@ -34,14 +34,14 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { SWalRef *pRef = *(SWalRef **)pIter; if (pRef->refVer != -1 && pRef->refVer <= ver) { taosHashCancelIterate(pWal->pRefHash, pIter); - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_FAILED); } } - taosCloseFile(&pWal->pLogFile); - taosCloseFile(&pWal->pIdxFile); + TAOS_UNUSED(taosCloseFile(&pWal->pLogFile)); + TAOS_UNUSED(taosCloseFile(&pWal->pIdxFile)); if (pWal->vers.firstVer != -1) { int32_t fileSetSize = taosArrayGetSize(pWal->fileInfoSet); @@ -51,7 +51,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { walBuildLogName(pWal, pFileInfo->firstVer, fnameStr); if (taosRemoveFile(fnameStr) < 0) { wError("vgId:%d, restore from snapshot, cannot remove file %s since %s", pWal->cfg.vgId, fnameStr, terrstr()); - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -60,7 +60,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { walBuildIdxName(pWal, pFileInfo->firstVer, fnameStr); if (taosRemoveFile(fnameStr) < 0) { wError("vgId:%d, cannot remove file %s since %s", pWal->cfg.vgId, fnameStr, terrstr()); - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -81,7 +81,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) { pWal->vers.snapshotVer = ver; pWal->vers.verInSnapshotting = -1; - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -146,7 +146,7 @@ static int64_t walChangeWrite(SWal *pWal, int64_t ver) { walBuildLogName(pWal, fileFirstVer, fnameStr); pLogTFile = taosOpenFile(fnameStr, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_APPEND); if (pLogTFile == NULL) { - taosCloseFile(&pIdxTFile); + TAOS_UNUSED(taosCloseFile(&pIdxTFile)); pWal->pLogFile = NULL; TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); @@ -160,12 +160,12 @@ static int64_t walChangeWrite(SWal *pWal, int64_t ver) { } int32_t walRollback(SWal *pWal, int64_t ver) { - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); wInfo("vgId:%d, wal rollback for version %" PRId64, pWal->cfg.vgId, ver); int64_t code; char fnameStr[WAL_FILE_LEN]; if (ver > pWal->vers.lastVer || ver <= pWal->vers.commitVer || ver <= pWal->vers.snapshotVer) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_WAL_INVALID_VER); } @@ -175,7 +175,7 @@ int32_t walRollback(SWal *pWal, int64_t ver) { // change current files code = walChangeWrite(pWal, ver); if (code < 0) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(code); } @@ -187,50 +187,50 @@ int32_t walRollback(SWal *pWal, int64_t ver) { walBuildLogName(pWal, pInfo->firstVer, fnameStr); wDebug("vgId:%d, wal remove file %s for rollback", pWal->cfg.vgId, fnameStr); - taosRemoveFile(fnameStr); + TAOS_UNUSED(taosRemoveFile(fnameStr)); walBuildIdxName(pWal, pInfo->firstVer, fnameStr); wDebug("vgId:%d, wal remove file %s for rollback", pWal->cfg.vgId, fnameStr); - taosRemoveFile(fnameStr); + TAOS_UNUSED(taosRemoveFile(fnameStr)); } } walBuildIdxName(pWal, walGetCurFileFirstVer(pWal), fnameStr); - taosCloseFile(&pWal->pIdxFile); + TAOS_UNUSED(taosCloseFile(&pWal->pIdxFile)); TdFilePtr pIdxFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND); if (pIdxFile == NULL) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } int64_t idxOff = walGetVerIdxOffset(pWal, ver); code = taosLSeekFile(pIdxFile, idxOff, SEEK_SET); if (code < 0) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } // read idx file and get log file pos SWalIdxEntry entry; if (taosReadFile(pIdxFile, &entry, sizeof(SWalIdxEntry)) != sizeof(SWalIdxEntry)) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } walBuildLogName(pWal, walGetCurFileFirstVer(pWal), fnameStr); - taosCloseFile(&pWal->pLogFile); + TAOS_UNUSED(taosCloseFile(&pWal->pLogFile)); TdFilePtr pLogFile = taosOpenFile(fnameStr, TD_FILE_WRITE | TD_FILE_READ | TD_FILE_APPEND); wDebug("vgId:%d, wal truncate file %s", pWal->cfg.vgId, fnameStr); if (pLogFile == NULL) { // TODO - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } code = taosLSeekFile(pLogFile, entry.offset, SEEK_SET); if (code < 0) { // TODO - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -238,19 +238,19 @@ int32_t walRollback(SWal *pWal, int64_t ver) { SWalCkHead head; int64_t size = taosReadFile(pLogFile, &head, sizeof(SWalCkHead)); if (size != sizeof(SWalCkHead)) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } code = walValidHeadCksum(&head); if (code != 0) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } if (head.head.version != ver) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_WAL_FILE_CORRUPTED); } @@ -258,13 +258,13 @@ int32_t walRollback(SWal *pWal, int64_t ver) { // truncate old files code = taosFtruncateFile(pLogFile, entry.offset); if (code < 0) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } code = taosFtruncateFile(pIdxFile, idxOff); if (code < 0) { - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TAOS_SYSTEM_ERROR(errno)); } @@ -272,19 +272,19 @@ int32_t walRollback(SWal *pWal, int64_t ver) { ((SWalFileInfo *)taosArrayGetLast(pWal->fileInfoSet))->lastVer = ver - 1; ((SWalFileInfo *)taosArrayGetLast(pWal->fileInfoSet))->fileSize = entry.offset; - taosCloseFile(&pIdxFile); - taosCloseFile(&pLogFile); + TAOS_UNUSED(taosCloseFile(&pIdxFile)); + TAOS_UNUSED(taosCloseFile(&pLogFile)); code = walSaveMeta(pWal); if (code < 0) { wError("vgId:%d, failed to save meta since %s", pWal->cfg.vgId, terrstr()); - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(code); } // unlock - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -371,7 +371,7 @@ static FORCE_INLINE int32_t walCheckAndRoll(SWal *pWal) { int32_t walBeginSnapshot(SWal *pWal, int64_t ver, int64_t logRetention) { int32_t code = 0; - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); ASSERT(logRetention >= 0); pWal->vers.verInSnapshotting = ver; pWal->vers.logRetention = logRetention; @@ -388,7 +388,7 @@ int32_t walBeginSnapshot(SWal *pWal, int64_t ver, int64_t logRetention) { } _exit: - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); TAOS_RETURN(code); } @@ -396,7 +396,7 @@ _exit: int32_t walEndSnapshot(SWal *pWal) { int32_t code = 0, lino = 0; - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); int64_t ver = pWal->vers.verInSnapshotting; wDebug("vgId:%d, wal end snapshot for version %" PRId64 ", log retention %" PRId64 " first ver %" PRId64 @@ -456,7 +456,7 @@ int32_t walEndSnapshot(SWal *pWal) { } for (SWalFileInfo *iter = pWal->fileInfoSet->pData; iter <= pUntil; iter++) { deleteCnt++; - taosArrayPush(pWal->toDeleteFiles, iter); + TAOS_UNUSED(taosArrayPush(pWal->toDeleteFiles, iter)); } // make new array, remove files @@ -589,8 +589,8 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); } - memset(newBody, 0, cyptedBodyLen); - memcpy(newBody, body, plainBodyLen); + TAOS_UNUSED(memset(newBody, 0, cyptedBodyLen)); + TAOS_UNUSED(memcpy(newBody, body, plainBodyLen)); newBodyEncrypted = taosMemoryMalloc(cyptedBodyLen); if (newBodyEncrypted == NULL) { @@ -607,7 +607,7 @@ static FORCE_INLINE int32_t walWriteImpl(SWal *pWal, int64_t index, tmsg_t msgTy opts.source = newBody; opts.result = newBodyEncrypted; opts.unitLen = 16; - strncpy(opts.key, pWal->cfg.encryptKey, ENCRYPT_KEY_LEN); + TAOS_UNUSED(strncpy((char *)opts.key, pWal->cfg.encryptKey, ENCRYPT_KEY_LEN)); int32_t count = CBC_Encrypt(&opts); @@ -698,7 +698,7 @@ int32_t walAppendLog(SWal *pWal, int64_t index, tmsg_t msgType, SWalSyncInfo syn int32_t bodyLen) { int32_t code = 0, lino = 0; - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); if (index != pWal->vers.lastVer + 1) { TAOS_CHECK_GOTO(TSDB_CODE_WAL_INVALID_VER, &lino, _exit); @@ -717,7 +717,7 @@ _exit: wError("%s failed at line %d since %s", __func__, lino, tstrerror(code)); } - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); return code; } @@ -728,7 +728,7 @@ int32_t walFsync(SWal *pWal, bool forceFsync) { return code; } - taosThreadMutexLock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexLock(&pWal->mutex)); if (forceFsync || (pWal->cfg.level == TAOS_WAL_FSYNC && pWal->cfg.fsyncPeriod == 0)) { wTrace("vgId:%d, fileId:%" PRId64 ".log, do fsync", pWal->cfg.vgId, walGetCurFileFirstVer(pWal)); if (taosFsyncFile(pWal->pLogFile) < 0) { @@ -737,7 +737,7 @@ int32_t walFsync(SWal *pWal, bool forceFsync) { code = TAOS_SYSTEM_ERROR(errno); } } - taosThreadMutexUnlock(&pWal->mutex); + TAOS_UNUSED(taosThreadMutexUnlock(&pWal->mutex)); return code; } diff --git a/source/util/src/tcompression.c b/source/util/src/tcompression.c index 884d7ea1b6..1f7a244a53 100644 --- a/source/util/src/tcompression.c +++ b/source/util/src/tcompression.c @@ -130,7 +130,7 @@ int32_t l2DecompressImpl_lz4(const char *const input, const int32_t compressedSi const int32_t decompressed_size = LZ4_decompress_safe(input + 1, output, compressedSize - 1, outputSize); if (decompressed_size < 0) { uError("Failed to decompress string with LZ4 algorithm, decompressed size:%d", decompressed_size); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } return decompressed_size; @@ -140,9 +140,9 @@ int32_t l2DecompressImpl_lz4(const char *const input, const int32_t compressedSi return compressedSize - 1; } else if (input[1] == 2) { uError("Invalid decompress string indicator:%d", input[0]); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } int32_t l2ComressInitImpl_tsz(char *lossyColumns, float fPrecision, double dPrecision, uint32_t maxIntervals, uint32_t intervals, int32_t ifAdtFse, const char *compressor) { @@ -195,7 +195,7 @@ int32_t l2CompressImpl_zlib(const char *const input, const int32_t inputSize, ch memcpy(output + 1, input, inputSize); return inputSize + 1; } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } int32_t l2DecompressImpl_zlib(const char *const input, const int32_t compressedSize, char *const output, int32_t outputSize, const char type) { @@ -205,7 +205,7 @@ int32_t l2DecompressImpl_zlib(const char *const input, const int32_t compressedS if (ret == Z_OK) { return len; } else { - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } } else if (input[0] == 0) { @@ -214,7 +214,7 @@ int32_t l2DecompressImpl_zlib(const char *const input, const int32_t compressedS return compressedSize - 1; } else if (input[1] == 2) { uError("Invalid decompress string indicator:%d", input[0]); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } return 0; } @@ -243,7 +243,7 @@ int32_t l2DecompressImpl_zstd(const char *const input, const int32_t compressedS memcpy(output, input + 1, compressedSize - 1); return compressedSize - 1; } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } int32_t l2ComressInitImpl_xz(char *lossyColumns, float fPrecision, double dPrecision, uint32_t maxIntervals, @@ -269,7 +269,7 @@ int32_t l2DecompressImpl_xz(const char *const input, const int32_t compressedSiz memcpy(output, input + 1, compressedSize - 1); return compressedSize - 1; } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } #endif @@ -333,7 +333,7 @@ int32_t tsCompressInit(char *lossyColumns, float fPrecision, double dPrecision, tdszInit(fPrecision, dPrecision, maxIntervals, intervals, ifAdtFse, compressor); if (lossyFloat) uTrace("lossy compression float is opened. "); if (lossyDouble) uTrace("lossy compression double is opened. "); - return 1; + return 0; } // exit call void tsCompressExit() { tdszExit(); } @@ -559,7 +559,7 @@ int32_t tsCompressBoolImp(const char *const input, const int32_t nelements, char output[pos] |= t; } else { uError("Invalid compress bool value:%d", output[pos]); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -600,7 +600,7 @@ int32_t tsCompressDoubleImp2(const char *const input, const int32_t nelements, c } else if (type == TSDB_DATA_TYPE_DOUBLE) { return tsCompressDoubleImp(input, nelements, output); } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } int32_t tsDecompressDoubleImp2(const char *const input, const int32_t nelements, char *const output, char const type) { if (type == TSDB_DATA_TYPE_FLOAT) { @@ -608,7 +608,7 @@ int32_t tsDecompressDoubleImp2(const char *const input, const int32_t nelements, } else if (type == TSDB_DATA_TYPE_DOUBLE) { return tsDecompressDoubleImp(input, nelements, output); } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } int32_t tsCompressINTImp2(const char *const input, const int32_t nelements, char *const output, const char type) { return tsCompressINTImp(input, nelements, output, type); @@ -696,7 +696,7 @@ int32_t tsDecompressStringImp(const char *const input, int32_t compressedSize, c const int32_t decompressed_size = LZ4_decompress_safe(input + 1, output, compressedSize - 1, outputSize); if (decompressed_size < 0) { uError("Failed to decompress string with LZ4 algorithm, decompressed size:%d", decompressed_size); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } return decompressed_size; @@ -706,9 +706,9 @@ int32_t tsDecompressStringImp(const char *const input, int32_t compressedSize, c return compressedSize - 1; } else if (input[1] == 2) { uError("Invalid decompress string indicator:%d", input[0]); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } /* --------------------------------------------Timestamp Compression ---------------------------------------------- */ @@ -2468,7 +2468,7 @@ int32_t tsCompressFloat(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_ return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } } @@ -2487,7 +2487,7 @@ int32_t tsDecompressFloat(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int3 return tsDecompressFloatImp(pBuf, nEle, pOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } } @@ -2507,7 +2507,7 @@ int32_t tsCompressDouble(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32 return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } } @@ -2526,7 +2526,7 @@ int32_t tsDecompressDouble(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int return tsDecompressDoubleImp(pBuf, nEle, pOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } } @@ -2550,25 +2550,26 @@ int32_t tsCompressBool(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t } else if (cmprAlg == TWO_STAGE_COMP) { int32_t len = tsCompressBoolImp(pIn, nEle, pBuf); if (len < 0) { - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_THIRDPARTY_ERROR; } } int32_t tsDecompressBool(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t nOut, uint8_t cmprAlg, void *pBuf, int32_t nBuf) { + int32_t code = 0; if (cmprAlg == ONE_STAGE_COMP) { return tsDecompressBoolImp(pIn, nEle, pOut); } else if (cmprAlg == TWO_STAGE_COMP) { - if (tsDecompressStringImp(pIn, nIn, pBuf, nBuf) < 0) return -1; + if ((code = tsDecompressStringImp(pIn, nIn, pBuf, nBuf)) < 0) return code; return tsDecompressBoolImp(pBuf, nEle, pOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -2579,23 +2580,27 @@ int32_t tsCompressTinyint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int3 return tsCompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_TINYINT); } else if (cmprAlg == TWO_STAGE_COMP) { int32_t len = tsCompressINTImp(pIn, nEle, pBuf, TSDB_DATA_TYPE_TINYINT); + if (len < 0) { + return TSDB_CODE_THIRDPARTY_ERROR; + } return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } int32_t tsDecompressTinyint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t nOut, uint8_t cmprAlg, void *pBuf, int32_t nBuf) { + int32_t code = 0; if (cmprAlg == ONE_STAGE_COMP) { return tsDecompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_TINYINT); } else if (cmprAlg == TWO_STAGE_COMP) { - if (tsDecompressStringImp(pIn, nIn, pBuf, nBuf) < 0) return -1; + if ((code = tsDecompressStringImp(pIn, nIn, pBuf, nBuf)) < 0) return code; return tsDecompressINTImp(pBuf, nEle, pOut, TSDB_DATA_TYPE_TINYINT); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -2606,23 +2611,27 @@ int32_t tsCompressSmallint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int return tsCompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_SMALLINT); } else if (cmprAlg == TWO_STAGE_COMP) { int32_t len = tsCompressINTImp(pIn, nEle, pBuf, TSDB_DATA_TYPE_SMALLINT); + if (len < 0) { + return TSDB_CODE_THIRDPARTY_ERROR; + } return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } int32_t tsDecompressSmallint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t nOut, uint8_t cmprAlg, void *pBuf, int32_t nBuf) { + int32_t code = 0; if (cmprAlg == ONE_STAGE_COMP) { return tsDecompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_SMALLINT); } else if (cmprAlg == TWO_STAGE_COMP) { - if (tsDecompressStringImp(pIn, nIn, pBuf, nBuf) < 0) return -1; + if ((code = tsDecompressStringImp(pIn, nIn, pBuf, nBuf)) < 0) return code; return tsDecompressINTImp(pBuf, nEle, pOut, TSDB_DATA_TYPE_SMALLINT); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -2633,23 +2642,27 @@ int32_t tsCompressInt(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t return tsCompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_INT); } else if (cmprAlg == TWO_STAGE_COMP) { int32_t len = tsCompressINTImp(pIn, nEle, pBuf, TSDB_DATA_TYPE_INT); + if (len < 0) { + return TSDB_CODE_THIRDPARTY_ERROR; + } return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } int32_t tsDecompressInt(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t nOut, uint8_t cmprAlg, void *pBuf, int32_t nBuf) { + int32_t code = 0; if (cmprAlg == ONE_STAGE_COMP) { return tsDecompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_INT); } else if (cmprAlg == TWO_STAGE_COMP) { - if (tsDecompressStringImp(pIn, nIn, pBuf, nBuf) < 0) return -1; + if ((code = tsDecompressStringImp(pIn, nIn, pBuf, nBuf)) < 0) return code; return tsDecompressINTImp(pBuf, nEle, pOut, TSDB_DATA_TYPE_INT); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -2660,23 +2673,27 @@ int32_t tsCompressBigint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32 return tsCompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_BIGINT); } else if (cmprAlg == TWO_STAGE_COMP) { int32_t len = tsCompressINTImp(pIn, nEle, pBuf, TSDB_DATA_TYPE_BIGINT); + if (len < 0) { + return TSDB_CODE_THIRDPARTY_ERROR; + } return tsCompressStringImp(pBuf, len, pOut, nOut); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } int32_t tsDecompressBigint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int32_t nOut, uint8_t cmprAlg, void *pBuf, int32_t nBuf) { + int32_t code = 0; if (cmprAlg == ONE_STAGE_COMP) { return tsDecompressINTImp(pIn, nEle, pOut, TSDB_DATA_TYPE_BIGINT); } else if (cmprAlg == TWO_STAGE_COMP) { - if (tsDecompressStringImp(pIn, nIn, pBuf, nBuf) < 0) return -1; + if ((code = tsDecompressStringImp(pIn, nIn, pBuf, nBuf)) < 0) return code; return tsDecompressINTImp(pBuf, nEle, pOut, TSDB_DATA_TYPE_BIGINT); } else { ASSERTS(0, "compress algo invalid"); - return -1; + return TSDB_CODE_INVALID_PARA; } } @@ -2713,14 +2730,14 @@ int32_t tsDecompressBigint(void *pIn, int32_t nIn, int32_t nEle, void *pOut, int int8_t alvl = tsGetCompressL2Level(l2, lvl); \ return compressL2Dict[l2].comprFn(pIn, nIn, pOut, nOut, type, alvl); \ } else { \ - uTrace("dencode:%s, decompress:%s, level:%d, type:%s", "disabled", compressL2Dict[l1].name, lvl, \ + uTrace("dencode:%s, decompress:%s, level:%d, type:%s", "disabled", compressL2Dict[l1].name, lvl, \ tDataTypes[type].name); \ return compressL2Dict[l2].decomprFn(pIn, nIn, pOut, nOut, type); \ } \ } else { \ ASSERT(0); \ } \ - return -1; \ + return TSDB_CODE_INVALID_PARA; \ } while (1) /************************************************************************* diff --git a/source/util/src/tconfig.c b/source/util/src/tconfig.c index aa6f4e7941..3a177f8b1c 100644 --- a/source/util/src/tconfig.c +++ b/source/util/src/tconfig.c @@ -42,7 +42,7 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url); extern char **environ; -int32_t cfgInit(SConfig ** ppCfg) { +int32_t cfgInit(SConfig **ppCfg) { SConfig *pCfg = taosMemoryCalloc(1, sizeof(SConfig)); if (pCfg == NULL) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); @@ -54,7 +54,7 @@ int32_t cfgInit(SConfig ** ppCfg) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } - taosThreadMutexInit(&pCfg->lock, NULL); + TAOS_CHECK_RETURN(taosThreadMutexInit(&pCfg->lock, NULL)); *ppCfg = pCfg; TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -113,7 +113,7 @@ void cfgCleanup(SConfig *pCfg) { } taosArrayDestroy(pCfg->array); - taosThreadMutexDestroy(&pCfg->lock); + (void)taosThreadMutexDestroy(&pCfg->lock); taosMemoryFree(pCfg); } @@ -244,17 +244,17 @@ static int32_t doSetConf(SConfigItem *pItem, const char *value, ECfgSrcType styp static int32_t cfgSetTimezone(SConfigItem *pItem, const char *value, ECfgSrcType stype) { TAOS_CHECK_RETURN(doSetConf(pItem, value, stype)); - osSetTimezone(value); + TAOS_CHECK_RETURN(osSetTimezone(value)); TAOS_RETURN(TSDB_CODE_SUCCESS); } static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, const char *level, const char *primary, const char *disable, ECfgSrcType stype) { - taosThreadMutexLock(&pCfg->lock); + (void)taosThreadMutexLock(&pCfg->lock); SConfigItem *pItem = cfgGetItem(pCfg, name); if (pItem == NULL) { - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); } @@ -262,7 +262,7 @@ static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, if (pItem->array == NULL) { pItem->array = taosArrayInit(16, sizeof(SDiskCfg)); if (pItem->array == NULL) { - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } @@ -275,13 +275,13 @@ static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value, cfg.disable = disable ? atoi(disable) : 0; void *ret = taosArrayPush(pItem->array, &cfg); if (ret == NULL) { - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } pItem->stype = stype; - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -307,7 +307,7 @@ static int32_t cfgUpdateDebugFlagItem(SConfig *pCfg, const char *name, bool rese if (pDebugFlagItem == NULL) return -1; if (pDebugFlagItem->array != NULL) { SLogVar logVar = {0}; - strncpy(logVar.name, name, TSDB_LOG_VAR_LEN - 1); + (void)strncpy(logVar.name, name, TSDB_LOG_VAR_LEN - 1); if (NULL == taosArrayPush(pDebugFlagItem->array, &logVar)) { TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } @@ -317,15 +317,15 @@ static int32_t cfgUpdateDebugFlagItem(SConfig *pCfg, const char *name, bool rese int32_t cfgSetItem(SConfig *pCfg, const char *name, const char *value, ECfgSrcType stype, bool lock) { // GRANT_CFG_SET; - int32_t code = 0; + int32_t code = TSDB_CODE_SUCCESS; if (lock) { - taosThreadMutexLock(&pCfg->lock); + (void)taosThreadMutexLock(&pCfg->lock); } SConfigItem *pItem = cfgGetItem(pCfg, name); if (pItem == NULL) { - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND); } @@ -374,7 +374,7 @@ int32_t cfgSetItem(SConfig *pCfg, const char *name, const char *value, ECfgSrcTy } if (lock) { - taosThreadMutexUnlock(&pCfg->lock); + (void)taosThreadMutexUnlock(&pCfg->lock); } TAOS_RETURN(code); @@ -398,12 +398,10 @@ void cfgLock(SConfig *pCfg) { return; } - taosThreadMutexLock(&pCfg->lock); + (void)taosThreadMutexLock(&pCfg->lock); } -void cfgUnLock(SConfig *pCfg) { - taosThreadMutexUnlock(&pCfg->lock); -} +void cfgUnLock(SConfig *pCfg) { (void)taosThreadMutexUnlock(&pCfg->lock); } int32_t cfgCheckRangeForDynUpdate(SConfig *pCfg, const char *name, const char *pVal, bool isServer) { ECfgDynType dynType = isServer ? CFG_DYN_SERVER : CFG_DYN_CLIENT; @@ -420,11 +418,13 @@ int32_t cfgCheckRangeForDynUpdate(SConfig *pCfg, const char *name, const char *p switch (pItem->dtype) { case CFG_DTYPE_STRING: { if (strcasecmp(name, "slowLogScope") == 0) { - char *tmp = taosStrdup(pVal); - if (taosSetSlowLogScope(tmp) < 0) { + char *tmp = taosStrdup(pVal); + int32_t scope = 0; + int32_t code = taosSetSlowLogScope(tmp, &scope); + if (TSDB_CODE_SUCCESS != code) { cfgUnLock(pCfg); taosMemoryFree(tmp); - TAOS_RETURN(TSDB_CODE_INVALID_CFG); + TAOS_RETURN(code); } taosMemoryFree(tmp); } @@ -506,7 +506,7 @@ static int32_t cfgAddItem(SConfig *pCfg, SConfigItem *pItem, const char *name) { int32_t len = strlen(name); char lowcaseName[CFG_NAME_MAX_LEN + 1] = {0}; - strntolower(lowcaseName, name, TMIN(CFG_NAME_MAX_LEN, len)); + (void)strntolower(lowcaseName, name, TMIN(CFG_NAME_MAX_LEN, len)); if (taosArrayPush(pCfg->array, pItem) == NULL) { if (pItem->dtype == CFG_DTYPE_STRING) { @@ -721,10 +721,10 @@ int32_t cfgDumpItemScope(SConfigItem *pItem, char *buf, int32_t bufSize, int32_t void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { if (dump) { - printf(" s3 config"); - printf("\n"); - printf("================================================================="); - printf("\n"); + (void)printf(" s3 config"); + (void)printf("\n"); + (void)printf("================================================================="); + (void)printf("\n"); } else { uInfo(" s3 config"); uInfo("================================================================="); @@ -752,7 +752,7 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { switch (pItem->dtype) { case CFG_DTYPE_BOOL: if (dump) { - printf("%s %s %u\n", src, name, pItem->bval); + (void)printf("%s %s %u\n", src, name, pItem->bval); } else { uInfo("%s %s %u", src, name, pItem->bval); } @@ -760,14 +760,14 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { break; case CFG_DTYPE_INT32: if (dump) { - printf("%s %s %d\n", src, name, pItem->i32); + (void)printf("%s %s %d\n", src, name, pItem->i32); } else { uInfo("%s %s %d", src, name, pItem->i32); } break; case CFG_DTYPE_INT64: if (dump) { - printf("%s %s %" PRId64 "\n", src, name, pItem->i64); + (void)printf("%s %s %" PRId64 "\n", src, name, pItem->i64); } else { uInfo("%s %s %" PRId64, src, name, pItem->i64); } @@ -775,7 +775,7 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { case CFG_DTYPE_DOUBLE: case CFG_DTYPE_FLOAT: if (dump) { - printf("%s %s %.2f\n", src, name, pItem->fval); + (void)printf("%s %s %.2f\n", src, name, pItem->fval); } else { uInfo("%s %s %.2f", src, name, pItem->fval); } @@ -787,7 +787,7 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { case CFG_DTYPE_TIMEZONE: case CFG_DTYPE_NONE: if (dump) { - printf("%s %s %s\n", src, name, pItem->str); + (void)printf("%s %s %s\n", src, name, pItem->str); } else { uInfo("%s %s %s", src, name, pItem->str); } @@ -796,7 +796,7 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { } if (dump) { - printf("=================================================================\n"); + (void)printf("=================================================================\n"); } else { uInfo("================================================================="); } @@ -804,10 +804,10 @@ void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump) { void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { if (dump) { - printf(" global config"); - printf("\n"); - printf("================================================================="); - printf("\n"); + (void)printf(" global config"); + (void)printf("\n"); + (void)printf("================================================================="); + (void)printf("\n"); } else { uInfo(" global config"); uInfo("================================================================="); @@ -834,7 +834,7 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { switch (pItem->dtype) { case CFG_DTYPE_BOOL: if (dump) { - printf("%s %s %u\n", src, name, pItem->bval); + (void)printf("%s %s %u\n", src, name, pItem->bval); } else { uInfo("%s %s %u", src, name, pItem->bval); } @@ -842,14 +842,14 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { break; case CFG_DTYPE_INT32: if (dump) { - printf("%s %s %d\n", src, name, pItem->i32); + (void)printf("%s %s %d\n", src, name, pItem->i32); } else { uInfo("%s %s %d", src, name, pItem->i32); } break; case CFG_DTYPE_INT64: if (dump) { - printf("%s %s %" PRId64 "\n", src, name, pItem->i64); + (void)printf("%s %s %" PRId64 "\n", src, name, pItem->i64); } else { uInfo("%s %s %" PRId64, src, name, pItem->i64); } @@ -857,7 +857,7 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { case CFG_DTYPE_DOUBLE: case CFG_DTYPE_FLOAT: if (dump) { - printf("%s %s %.2f\n", src, name, pItem->fval); + (void)printf("%s %s %.2f\n", src, name, pItem->fval); } else { uInfo("%s %s %.2f", src, name, pItem->fval); } @@ -869,7 +869,7 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { case CFG_DTYPE_TIMEZONE: case CFG_DTYPE_NONE: if (dump) { - printf("%s %s %s\n", src, name, pItem->str); + (void)printf("%s %s %s\n", src, name, pItem->str); } else { uInfo("%s %s %s", src, name, pItem->str); } @@ -878,7 +878,7 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump) { } if (dump) { - printf("=================================================================\n"); + (void)printf("=================================================================\n"); } else { uInfo("================================================================="); } @@ -900,21 +900,21 @@ int32_t cfgLoadFromEnvVar(SConfig *pConfig) { pEnv++; (void)taosEnvToCfg(line, line); - paGetToken(line, &name, &olen); + (void)paGetToken(line, &name, &olen); if (olen == 0) continue; name[olen] = 0; - paGetToken(name + olen + 1, &value, &vlen); + (void)paGetToken(name + olen + 1, &value, &vlen); if (vlen == 0) continue; value[vlen] = 0; - paGetToken(value + vlen + 1, &value2, &vlen2); + (void)paGetToken(value + vlen + 1, &value2, &vlen2); if (vlen2 != 0) { value2[vlen2] = 0; - paGetToken(value2 + vlen2 + 1, &value3, &vlen3); + (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); if (vlen3 != 0) { value3[vlen3] = 0; - paGetToken(value3 + vlen3 + 1, &value4, &vlen4); + (void)paGetToken(value3 + vlen3 + 1, &value4, &vlen4); if (vlen4 != 0) value4[vlen4] = 0; } } @@ -947,21 +947,21 @@ int32_t cfgLoadFromEnvCmd(SConfig *pConfig, const char **envCmd) { name = value = value2 = value3 = value4 = NULL; olen = vlen = vlen2 = vlen3 = vlen4 = 0; - paGetToken(buf, &name, &olen); + (void)paGetToken(buf, &name, &olen); if (olen == 0) continue; name[olen] = 0; - paGetToken(name + olen + 1, &value, &vlen); + (void)paGetToken(name + olen + 1, &value, &vlen); if (vlen == 0) continue; value[vlen] = 0; - paGetToken(value + vlen + 1, &value2, &vlen2); + (void)paGetToken(value + vlen + 1, &value2, &vlen2); if (vlen2 != 0) { value2[vlen2] = 0; - paGetToken(value2 + vlen2 + 1, &value3, &vlen3); + (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); if (vlen3 != 0) { value3[vlen3] = 0; - paGetToken(value3 + vlen3 + 1, &value4, &vlen4); + (void)paGetToken(value3 + vlen3 + 1, &value4, &vlen4); if (vlen4 != 0) value4[vlen4] = 0; } } @@ -1015,21 +1015,21 @@ int32_t cfgLoadFromEnvFile(SConfig *pConfig, const char *envFile) { if (line[_bytes - 1] == '\n') line[_bytes - 1] = 0; (void)taosEnvToCfg(line, line); - paGetToken(line, &name, &olen); + (void)paGetToken(line, &name, &olen); if (olen == 0) continue; name[olen] = 0; - paGetToken(name + olen + 1, &value, &vlen); + (void)paGetToken(name + olen + 1, &value, &vlen); if (vlen == 0) continue; value[vlen] = 0; - paGetToken(value + vlen + 1, &value2, &vlen2); + (void)paGetToken(value + vlen + 1, &value2, &vlen2); if (vlen2 != 0) { value2[vlen2] = 0; - paGetToken(value2 + vlen2 + 1, &value3, &vlen3); + (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); if (vlen3 != 0) { value3[vlen3] = 0; - paGetToken(value3 + vlen3 + 1, &value4, &vlen4); + (void)paGetToken(value3 + vlen3 + 1, &value4, &vlen4); if (vlen4 != 0) value4[vlen4] = 0; } } @@ -1043,7 +1043,7 @@ int32_t cfgLoadFromEnvFile(SConfig *pConfig, const char *envFile) { } } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); uInfo("load from env cfg file %s success", filepath); TAOS_RETURN(TSDB_CODE_SUCCESS); @@ -1079,11 +1079,11 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { if (line[_bytes - 1] == '\n') line[_bytes - 1] = 0; - paGetToken(line, &name, &olen); + (void)paGetToken(line, &name, &olen); if (olen == 0) continue; name[olen] = 0; - paGetToken(name + olen + 1, &value, &vlen); + (void)paGetToken(name + olen + 1, &value, &vlen); if (vlen == 0) continue; value[vlen] = 0; @@ -1096,7 +1096,7 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { int32_t count = 1; while (vlen < 1024) { - paGetToken(value + vlen + 1 * count, &tmp, &len); + (void)paGetToken(value + vlen + 1 * count, &tmp, &len); if (len == 0) break; tmp[len] = 0; strcpy(newValue + vlen, tmp); @@ -1107,13 +1107,13 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { code = cfgSetItem(pConfig, name, newValue, CFG_STYPE_CFG_FILE, true); if (TSDB_CODE_SUCCESS != code && TSDB_CODE_CFG_NOT_FOUND != code) break; } else { - paGetToken(value + vlen + 1, &value2, &vlen2); + (void)paGetToken(value + vlen + 1, &value2, &vlen2); if (vlen2 != 0) { value2[vlen2] = 0; - paGetToken(value2 + vlen2 + 1, &value3, &vlen3); + (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); if (vlen3 != 0) { value3[vlen3] = 0; - paGetToken(value3 + vlen3 + 1, &value4, &vlen4); + (void)paGetToken(value3 + vlen3 + 1, &value4, &vlen4); if (vlen4 != 0) value4[vlen4] = 0; } } @@ -1136,7 +1136,7 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { } } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); if (TSDB_CODE_SUCCESS == code || TSDB_CODE_CFG_NOT_FOUND == code) { uInfo("load from cfg file %s success", filepath); @@ -1177,18 +1177,18 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { // if(line[_bytes - 1] == '\n') line[_bytes - 1] = 0; -// paGetToken(line, &name, &olen); +// (void)paGetToken(line, &name, &olen); // if (olen == 0) continue; // name[olen] = 0; -// paGetToken(name + olen + 1, &value, &vlen); +// (void)paGetToken(name + olen + 1, &value, &vlen); // if (vlen == 0) continue; // value[vlen] = 0; -// paGetToken(value + vlen + 1, &value2, &vlen2); +// (void)paGetToken(value + vlen + 1, &value2, &vlen2); // if (vlen2 != 0) { // value2[vlen2] = 0; -// paGetToken(value2 + vlen2 + 1, &value3, &vlen3); +// (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); // if (vlen3 != 0) value3[vlen3] = 0; // } @@ -1200,7 +1200,7 @@ int32_t cfgLoadFromCfgFile(SConfig *pConfig, const char *filepath) { // } // } -// taosCloseFile(&pFile); +// (void)taosCloseFile(&pFile); // if (line != NULL) taosMemoryFreeClear(line); // if (code == 0 || (code != 0 && terrno == TSDB_CODE_CFG_NOT_FOUND)) { @@ -1243,20 +1243,20 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { size_t fileSize = taosLSeekFile(pFile, 0, SEEK_END); char *buf = taosMemoryMalloc(fileSize + 1); if (!buf) { - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); uError("load json file error: %s, failed to alloc memory", filepath); TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); } buf[fileSize] = 0; - taosLSeekFile(pFile, 0, SEEK_SET); + (void)taosLSeekFile(pFile, 0, SEEK_SET); if (taosReadFile(pFile, buf, fileSize) <= 0) { - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); uError("load json file error: %s", filepath); taosMemoryFreeClear(buf); TAOS_RETURN(TSDB_CODE_INVALID_DATA_FMT); } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); pJson = tjsonParse(buf); if (NULL == pJson) { const char *jsonParseError = tjsonGetError(); @@ -1287,26 +1287,26 @@ int32_t cfgLoadFromApollUrl(SConfig *pConfig, const char *url) { cfgLineBuf = px; - memcpy(cfgLineBuf, itemName, itemNameLen); + (void)memcpy(cfgLineBuf, itemName, itemNameLen); cfgLineBuf[itemNameLen] = ' '; memcpy(&cfgLineBuf[itemNameLen + 1], itemValueString, itemValueStringLen); cfgLineBuf[itemNameLen + itemValueStringLen + 2] = 0; - paGetToken(cfgLineBuf, &name, &olen); + (void)paGetToken(cfgLineBuf, &name, &olen); if (olen == 0) continue; name[olen] = 0; - paGetToken(name + olen + 1, &value, &vlen); + (void)paGetToken(name + olen + 1, &value, &vlen); if (vlen == 0) continue; value[vlen] = 0; - paGetToken(value + vlen + 1, &value2, &vlen2); + (void)paGetToken(value + vlen + 1, &value2, &vlen2); if (vlen2 != 0) { value2[vlen2] = 0; - paGetToken(value2 + vlen2 + 1, &value3, &vlen3); + (void)paGetToken(value2 + vlen2 + 1, &value3, &vlen3); if (vlen3 != 0) { value3[vlen3] = 0; - paGetToken(value3 + vlen3 + 1, &value4, &vlen4); + (void)paGetToken(value3 + vlen3 + 1, &value4, &vlen4); if (vlen4 != 0) value4[vlen4] = 0; } } @@ -1350,7 +1350,7 @@ int32_t cfgGetApollUrl(const char **envCmd, const char *envFile, char *apolloUrl p++; p[strlen(p) - 1] = '\0'; } - memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); + (void)memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); uInfo("get apollo url from env cmd success"); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -1372,7 +1372,7 @@ int32_t cfgGetApollUrl(const char **envCmd, const char *envFile, char *apolloUrl p++; p[strlen(p) - 1] = '\0'; } - memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); + (void)memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); uInfo("get apollo url from env variables success, apolloUrl=%s", apolloUrl); TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -1409,14 +1409,14 @@ int32_t cfgGetApollUrl(const char **envCmd, const char *envFile, char *apolloUrl p++; p[strlen(p) - 1] = '\0'; } - memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); - taosCloseFile(&pFile); + (void)memcpy(apolloUrl, p, TMIN(strlen(p) + 1, PATH_MAX)); + (void)taosCloseFile(&pFile); uInfo("get apollo url from env file success"); TAOS_RETURN(TSDB_CODE_SUCCESS); } } } - taosCloseFile(&pFile); + (void)taosCloseFile(&pFile); } uInfo("fail get apollo url from cmd env file"); @@ -1440,7 +1440,7 @@ int32_t cfgCreateIter(SConfig *pConf, SConfigIter **ppIter) { TAOS_RETURN(TSDB_CODE_SUCCESS); } -SConfigItem *cfgNextIter(SConfigIter* pIter) { +SConfigItem *cfgNextIter(SConfigIter *pIter) { if (pIter->index < cfgGetSize(pIter->pConf)) { return taosArrayGet(pIter->pConf->array, pIter->index++); } diff --git a/source/util/src/tdecompress.c b/source/util/src/tdecompress.c index aa1a8e3148..a27d2efbcc 100644 --- a/source/util/src/tdecompress.c +++ b/source/util/src/tdecompress.c @@ -34,7 +34,7 @@ int32_t getWordLength(char type) { break; default: uError("Invalid decompress integer type:%d", type); - return -1; + return TSDB_CODE_INVALID_PARA; } return wordLength; @@ -156,7 +156,7 @@ int32_t tsDecompressIntImpl_Hw(const char *const input, const int32_t nelements, // 13 6 9 4 5 2 1 // 0 D7,D6 D6 D5,D4 D4 D3,D2 D2 // D1,D0 D0 +D5,D4 D5,D4, 0 0 D1,D0 D1,D0 - //0 0 D7~D4 D6~D4 D5~D4 D4 D3~D0 D2~D0 + // 0 0 D7~D4 D6~D4 D5~D4 D4 D3~D0 D2~D0 // D1~D0 D0 22 15 9 4 6 3 // 1 0 // diff --git a/source/util/src/terror.c b/source/util/src/terror.c index 9e127f2af1..e8a12fadfc 100644 --- a/source/util/src/terror.c +++ b/source/util/src/terror.c @@ -533,6 +533,8 @@ TAOS_DEFINE_ERROR(TSDB_CODE_SYN_WRONG_FSM_STATE, "Sync got a wrong fsm TAOS_DEFINE_ERROR(TSDB_CODE_SYN_WRONG_SYNC_STATE, "Sync got a wrong state") TAOS_DEFINE_ERROR(TSDB_CODE_SYN_WRONG_REF, "Sync got a wrong ref") TAOS_DEFINE_ERROR(TSDB_CODE_SYN_INVALID_ID, "Sync invalid id") +TAOS_DEFINE_ERROR(TSDB_CODE_SYN_RETURN_VALUE_NULL, "Sync got a null return") +TAOS_DEFINE_ERROR(TSDB_CODE_SYN_WRONG_ROLE, "Sync got a wrong role") TAOS_DEFINE_ERROR(TSDB_CODE_SYN_INTERNAL_ERROR, "Sync internal error") //tq diff --git a/source/util/src/tlrucache.c b/source/util/src/tlrucache.c index 4f8e96c4c7..7e165a12d5 100644 --- a/source/util/src/tlrucache.c +++ b/source/util/src/tlrucache.c @@ -333,13 +333,13 @@ static void taosLRUCacheShardEvictLRU(SLRUCacheShard *shard, size_t charge, SArr static void taosLRUCacheShardSetCapacity(SLRUCacheShard *shard, size_t capacity) { SArray *lastReferenceList = taosArrayInit(16, POINTER_BYTES); - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); shard->capacity = capacity; shard->highPriPoolCapacity = capacity * shard->highPriPoolRatio; taosLRUCacheShardEvictLRU(shard, 0, lastReferenceList); - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); for (int i = 0; i < taosArrayGetSize(lastReferenceList); ++i) { SLRUEntry *entry = taosArrayGetP(lastReferenceList, i); @@ -352,9 +352,9 @@ static int taosLRUCacheShardInit(SLRUCacheShard *shard, size_t capacity, bool st int maxUpperHashBits) { TAOS_CHECK_RETURN(taosLRUEntryTableInit(&shard->table, maxUpperHashBits)); - taosThreadMutexInit(&shard->mutex, NULL); + (void)taosThreadMutexInit(&shard->mutex, NULL); - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); shard->capacity = 0; shard->highPriPoolUsage = 0; shard->strictCapacity = strict; @@ -367,7 +367,7 @@ static int taosLRUCacheShardInit(SLRUCacheShard *shard, size_t capacity, bool st shard->lru.next = &shard->lru; shard->lru.prev = &shard->lru; shard->lruLowPri = &shard->lru; - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); taosLRUCacheShardSetCapacity(shard, capacity); @@ -375,7 +375,7 @@ static int taosLRUCacheShardInit(SLRUCacheShard *shard, size_t capacity, bool st } static void taosLRUCacheShardCleanup(SLRUCacheShard *shard) { - taosThreadMutexDestroy(&shard->mutex); + (void)taosThreadMutexDestroy(&shard->mutex); taosLRUEntryTableCleanup(&shard->table); } @@ -385,7 +385,7 @@ static LRUStatus taosLRUCacheShardInsertEntry(SLRUCacheShard *shard, SLRUEntry * LRUStatus status = TAOS_LRU_STATUS_OK; SArray *lastReferenceList = taosArrayInit(16, POINTER_BYTES); - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); taosLRUCacheShardEvictLRU(shard, e->totalCharge, lastReferenceList); @@ -429,7 +429,7 @@ static LRUStatus taosLRUCacheShardInsertEntry(SLRUCacheShard *shard, SLRUEntry * } } - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); for (int i = 0; i < taosArrayGetSize(lastReferenceList); ++i) { SLRUEntry *entry = taosArrayGetP(lastReferenceList, i); @@ -470,7 +470,7 @@ static LRUStatus taosLRUCacheShardInsert(SLRUCacheShard *shard, const void *key, static LRUHandle *taosLRUCacheShardLookup(SLRUCacheShard *shard, const void *key, size_t keyLen, uint32_t hash) { SLRUEntry *e = NULL; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); e = taosLRUEntryTableLookup(&shard->table, key, keyLen, hash); if (e != NULL) { ASSERT(TAOS_LRU_ENTRY_IN_CACHE(e)); @@ -481,14 +481,14 @@ static LRUHandle *taosLRUCacheShardLookup(SLRUCacheShard *shard, const void *key TAOS_LRU_ENTRY_SET_HIT(e); } - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return (LRUHandle *)e; } static void taosLRUCacheShardErase(SLRUCacheShard *shard, const void *key, size_t keyLen, uint32_t hash) { bool lastReference = false; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); SLRUEntry *e = taosLRUEntryTableRemove(&shard->table, key, keyLen, hash); if (e != NULL) { @@ -503,7 +503,7 @@ static void taosLRUCacheShardErase(SLRUCacheShard *shard, const void *key, size_ } } - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); if (lastReference) { taosLRUEntryFree(e); @@ -513,11 +513,11 @@ static void taosLRUCacheShardErase(SLRUCacheShard *shard, const void *key, size_ static int taosLRUCacheShardApply(SLRUCacheShard *shard, _taos_lru_functor_t functor, void *ud) { int ret; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); ret = taosLRUEntryTableApplyF(&shard->table, functor, ud); - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return ret; } @@ -525,7 +525,7 @@ static int taosLRUCacheShardApply(SLRUCacheShard *shard, _taos_lru_functor_t fun static void taosLRUCacheShardEraseUnrefEntries(SLRUCacheShard *shard) { SArray *lastReferenceList = taosArrayInit(16, POINTER_BYTES); - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); while (shard->lru.next != &shard->lru) { SLRUEntry *old = shard->lru.next; @@ -539,7 +539,7 @@ static void taosLRUCacheShardEraseUnrefEntries(SLRUCacheShard *shard) { taosArrayPush(lastReferenceList, &old); } - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); for (int i = 0; i < taosArrayGetSize(lastReferenceList); ++i) { SLRUEntry *entry = taosArrayGetP(lastReferenceList, i); @@ -552,12 +552,12 @@ static void taosLRUCacheShardEraseUnrefEntries(SLRUCacheShard *shard) { static bool taosLRUCacheShardRef(SLRUCacheShard *shard, LRUHandle *handle) { SLRUEntry *e = (SLRUEntry *)handle; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); ASSERT(TAOS_LRU_ENTRY_HAS_REFS(e)); TAOS_LRU_ENTRY_REF(e); - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return true; } @@ -570,7 +570,7 @@ static bool taosLRUCacheShardRelease(SLRUCacheShard *shard, LRUHandle *handle, b SLRUEntry *e = (SLRUEntry *)handle; bool lastReference = false; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); lastReference = taosLRUEntryUnref(e); if (lastReference && TAOS_LRU_ENTRY_IN_CACHE(e)) { @@ -591,7 +591,7 @@ static bool taosLRUCacheShardRelease(SLRUCacheShard *shard, LRUHandle *handle, b shard->usage -= e->totalCharge; } - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); if (lastReference) { taosLRUEntryFree(e); @@ -603,9 +603,9 @@ static bool taosLRUCacheShardRelease(SLRUCacheShard *shard, LRUHandle *handle, b static size_t taosLRUCacheShardGetUsage(SLRUCacheShard *shard) { size_t usage = 0; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); usage = shard->usage; - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return usage; } @@ -613,9 +613,9 @@ static size_t taosLRUCacheShardGetUsage(SLRUCacheShard *shard) { static int32_t taosLRUCacheShardGetElems(SLRUCacheShard *shard) { int32_t elems = 0; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); elems = shard->table.elems; - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return elems; } @@ -623,22 +623,22 @@ static int32_t taosLRUCacheShardGetElems(SLRUCacheShard *shard) { static size_t taosLRUCacheShardGetPinnedUsage(SLRUCacheShard *shard) { size_t usage = 0; - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); ASSERT(shard->usage >= shard->lruUsage); usage = shard->usage - shard->lruUsage; - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); return usage; } static void taosLRUCacheShardSetStrictCapacity(SLRUCacheShard *shard, bool strict) { - taosThreadMutexLock(&shard->mutex); + (void)taosThreadMutexLock(&shard->mutex); shard->strictCapacity = strict; - taosThreadMutexUnlock(&shard->mutex); + (void)taosThreadMutexUnlock(&shard->mutex); } struct SShardedCache { @@ -706,7 +706,7 @@ SLRUCache *taosLRUCacheInit(size_t capacity, int numShardBits, double highPriPoo cache->shardedCache.capacity = capacity; cache->shardedCache.lastId = 1; - taosThreadMutexInit(&cache->shardedCache.capacityMutex, NULL); + (void)taosThreadMutexInit(&cache->shardedCache.capacityMutex, NULL); return cache; } @@ -723,7 +723,7 @@ void taosLRUCacheCleanup(SLRUCache *cache) { cache->shards = 0; } - taosThreadMutexDestroy(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexDestroy(&cache->shardedCache.capacityMutex); taosMemoryFree(cache); } @@ -826,7 +826,7 @@ void taosLRUCacheSetCapacity(SLRUCache *cache, size_t capacity) { uint32_t numShards = cache->numShards; size_t perShard = (capacity + (numShards - 1)) / numShards; - taosThreadMutexLock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexLock(&cache->shardedCache.capacityMutex); for (int i = 0; i < numShards; ++i) { taosLRUCacheShardSetCapacity(&cache->shards[i], perShard); @@ -834,17 +834,17 @@ void taosLRUCacheSetCapacity(SLRUCache *cache, size_t capacity) { cache->shardedCache.capacity = capacity; - taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); } size_t taosLRUCacheGetCapacity(SLRUCache *cache) { size_t capacity = 0; - taosThreadMutexLock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexLock(&cache->shardedCache.capacityMutex); capacity = cache->shardedCache.capacity; - taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); return capacity; } @@ -852,7 +852,7 @@ size_t taosLRUCacheGetCapacity(SLRUCache *cache) { void taosLRUCacheSetStrictCapacity(SLRUCache *cache, bool strict) { uint32_t numShards = cache->numShards; - taosThreadMutexLock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexLock(&cache->shardedCache.capacityMutex); for (int i = 0; i < numShards; ++i) { taosLRUCacheShardSetStrictCapacity(&cache->shards[i], strict); @@ -860,17 +860,17 @@ void taosLRUCacheSetStrictCapacity(SLRUCache *cache, bool strict) { cache->shardedCache.strictCapacity = strict; - taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); } bool taosLRUCacheIsStrictCapacity(SLRUCache *cache) { bool strict = false; - taosThreadMutexLock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexLock(&cache->shardedCache.capacityMutex); strict = cache->shardedCache.strictCapacity; - taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); + (void)taosThreadMutexUnlock(&cache->shardedCache.capacityMutex); return strict; }