diff --git a/include/libs/nodes/nodes.h b/include/libs/nodes/nodes.h index 24a062bfa3..72dd3ef3e0 100644 --- a/include/libs/nodes/nodes.h +++ b/include/libs/nodes/nodes.h @@ -173,6 +173,7 @@ int32_t nodesNodeToSQL(SNode* pNode, char* buf, int32_t bufSize, int32_t* len); char* nodesGetNameFromColumnNode(SNode* pNode); int32_t nodesGetOutputNumFromSlotList(SNodeList* pSlots); void nodesSortList(SNodeList** pList, int32_t (*)(SNode* pNode1, SNode* pNode2)); +void destroyFuncParam(void* pFuncStruct); #ifdef __cplusplus } diff --git a/source/dnode/mnode/impl/src/mndSma.c b/source/dnode/mnode/impl/src/mndSma.c index 19c9339af4..1a76ab2a8b 100644 --- a/source/dnode/mnode/impl/src/mndSma.c +++ b/source/dnode/mnode/impl/src/mndSma.c @@ -651,6 +651,9 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea streamObj.targetDbUid = pDb->uid; streamObj.version = 1; streamObj.sql = taosStrdup(pCreate->sql); + if (!streamObj.sql) { + return terrno; + } streamObj.smaId = smaObj.uid; streamObj.conf.watermark = pCreate->watermark; streamObj.deleteMark = pCreate->deleteMark; @@ -658,6 +661,10 @@ static int32_t mndCreateSma(SMnode *pMnode, SRpcMsg *pReq, SMCreateSmaReq *pCrea streamObj.conf.trigger = STREAM_TRIGGER_WINDOW_CLOSE; streamObj.conf.triggerParam = pCreate->maxDelay; streamObj.ast = taosStrdup(smaObj.ast); + if (!streamObj.ast) { + taosMemoryFree(streamObj.sql); + return terrno; + } streamObj.indexForMultiAggBalance = -1; // check the maxDelay @@ -1509,6 +1516,9 @@ static int32_t mndRetrieveIdx(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBloc if (pShow->pIter == NULL) { pShow->pIter = taosMemoryCalloc(1, sizeof(SSmaAndTagIter)); } + if (!pShow->pIter) { + return terrno; + } int32_t read = mndRetrieveSma(pReq, pShow, pBlock, rows); if (read < rows) { read += mndRetrieveTagIdx(pReq, pShow, pBlock, rows - read); @@ -1555,27 +1565,6 @@ static void initSMAObj(SCreateTSMACxt* pCxt) { pCxt->pSma->ast = pCxt->pCreateSmaReq->ast; } -static void initStreamObj(SStreamObj *pStream, const char *streamName, const SMCreateSmaReq *pCreateReq, - const SDbObj *pDb, SSmaObj *pSma) { - tstrncpy(pStream->name, streamName, TSDB_STREAM_FNAME_LEN); - tstrncpy(pStream->sourceDb, pDb->name, TSDB_DB_FNAME_LEN); - tstrncpy(pStream->targetDb, pDb->name, TSDB_DB_FNAME_LEN); - pStream->createTime = taosGetTimestampMs(); - pStream->updateTime = pStream->createTime; - pStream->uid = mndGenerateUid(streamName, strlen(streamName)); - pStream->sourceDbUid = pDb->uid; - pStream->targetDbUid = pDb->uid; - pStream->version = 1; - pStream->sql = taosStrdup(pCreateReq->sql); - pStream->smaId = pSma->uid; - pStream->conf.watermark = 0; - pStream->deleteMark = 0; - pStream->conf.fillHistory = STREAM_FILL_HISTORY_ON; - pStream->conf.trigger = STREAM_TRIGGER_WINDOW_CLOSE; - pStream->conf.triggerParam = 10000; - pStream->ast = taosStrdup(pSma->ast); -} - static int32_t mndCreateTSMABuildCreateStreamReq(SCreateTSMACxt *pCxt) { tstrncpy(pCxt->pCreateStreamReq->name, pCxt->streamName, TSDB_STREAM_FNAME_LEN); tstrncpy(pCxt->pCreateStreamReq->sourceDB, pCxt->pDb->name, TSDB_DB_FNAME_LEN); @@ -1653,11 +1642,15 @@ static int32_t mndCreateTSMABuildCreateStreamReq(SCreateTSMACxt *pCxt) { return code; } -static void mndCreateTSMABuildDropStreamReq(SCreateTSMACxt* pCxt) { +static int32_t mndCreateTSMABuildDropStreamReq(SCreateTSMACxt* pCxt) { tstrncpy(pCxt->pDropStreamReq->name, pCxt->streamName, TSDB_STREAM_FNAME_LEN); pCxt->pDropStreamReq->igNotExists = false; pCxt->pDropStreamReq->sql = taosStrdup(pCxt->pDropSmaReq->name); + if (!pCxt->pDropStreamReq->sql) { + return terrno; + } pCxt->pDropStreamReq->sqlLen = strlen(pCxt->pDropStreamReq->sql); + return TSDB_CODE_SUCCESS; } static int32_t mndSetUpdateDbTsmaVersionPrepareLogs(SMnode *pMnode, STrans *pTrans, SDbObj *pOld, SDbObj *pNew) { @@ -1815,7 +1808,10 @@ static int32_t mndCreateTSMA(SCreateTSMACxt *pCxt) { if (TSDB_CODE_SUCCESS != code) { goto _OVER; } - mndCreateTSMABuildDropStreamReq(pCxt); + code = mndCreateTSMABuildDropStreamReq(pCxt); + if (TSDB_CODE_SUCCESS != code) { + goto _OVER; + } if (TSDB_CODE_SUCCESS != (code = mndCreateTSMATxnPrepare(pCxt))) { goto _OVER; @@ -1985,7 +1981,10 @@ static int32_t mndDropTSMA(SCreateTSMACxt* pCxt) { } SMDropStreamReq dropStreamReq = {0}; pCxt->pDropStreamReq = &dropStreamReq; - mndCreateTSMABuildDropStreamReq(pCxt); + code = mndCreateTSMABuildDropStreamReq(pCxt); + if (TSDB_CODE_SUCCESS != code) { + goto _OVER; + } mndTransSetDbName(pTrans, pCxt->pDb->name, NULL); if (mndTransCheckConflict(pCxt->pMnode, pTrans) != 0) goto _OVER; mndTransSetSerial(pTrans); @@ -2141,12 +2140,15 @@ static int32_t mndRetrieveTSMA(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlo SMnode * pMnode = pReq->info.node; int32_t code = 0; SColumnInfoData *pColInfo; - if (pShow->db[0]) { - pDb = mndAcquireDb(pMnode, pShow->db); - } if (pShow->pIter == NULL) { pShow->pIter = taosMemoryCalloc(1, sizeof(SSmaAndTagIter)); } + if (!pShow->pIter) { + return terrno; + } + if (pShow->db[0]) { + pDb = mndAcquireDb(pMnode, pShow->db); + } SSmaAndTagIter *pIter = pShow->pIter; while (numOfRows < rows) { pIter->pSmaIter = sdbFetch(pMnode->pSdb, SDB_SMA, pIter->pSmaIter, (void **)&pSma); @@ -2273,7 +2275,7 @@ static int32_t mndRetrieveTSMA(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlo mndReleaseDb(pMnode, pSrcDb); if (TSDB_CODE_SUCCESS != code) { sdbCancelFetch(pMnode->pSdb, pIter->pSmaIter); - numOfRows = -1; + numOfRows = code; break; } } diff --git a/source/dnode/vnode/src/meta/metaCache.c b/source/dnode/vnode/src/meta/metaCache.c index ef20799283..06576c0671 100644 --- a/source/dnode/vnode/src/meta/metaCache.c +++ b/source/dnode/vnode/src/meta/metaCache.c @@ -286,7 +286,7 @@ int32_t metaCacheUpsert(SMeta* pMeta, SMetaInfo* pInfo) { SMetaCacheEntry* pEntryNew = (SMetaCacheEntry*)taosMemoryMalloc(sizeof(*pEntryNew)); if (pEntryNew == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -411,7 +411,7 @@ int32_t metaStatsCacheUpsert(SMeta* pMeta, SMetaStbStats* pInfo) { SMetaStbStatsEntry* pEntryNew = (SMetaStbStatsEntry*)taosMemoryMalloc(sizeof(*pEntryNew)); if (pEntryNew == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -492,7 +492,7 @@ static int checkAllEntriesInCache(const STagFilterResEntry* pEntry, SArray* pInv LRUHandle* pRes = taosLRUCacheLookup(pCache, buf, len); if (pRes == NULL) { // remove the item in the linked list if (taosArrayPush(pInvalidRes, &pNode) == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } else { (void)taosLRUCacheRelease(pCache, pRes, false); @@ -612,7 +612,7 @@ static void freeUidCachePayload(const void* key, size_t keyLen, void* value, voi static int32_t addNewEntry(SHashObj* pTableEntry, const void* pKey, int32_t keyLen, uint64_t suid) { STagFilterResEntry* p = taosMemoryMalloc(sizeof(STagFilterResEntry)); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } p->hitTimes = 0; diff --git a/source/dnode/vnode/src/meta/metaEntry.c b/source/dnode/vnode/src/meta/metaEntry.c index 6e94cca390..3b6eaf45d3 100644 --- a/source/dnode/vnode/src/meta/metaEntry.c +++ b/source/dnode/vnode/src/meta/metaEntry.c @@ -39,7 +39,7 @@ int meteDecodeColCmprEntry(SDecoder *pDecoder, SMetaEntry *pME) { uDebug("dencode cols:%d", pWrapper->nCols); pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr)); if (pWrapper->pColCmpr == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } for (int i = 0; i < pWrapper->nCols; i++) { @@ -53,7 +53,7 @@ static FORCE_INLINE int32_t metatInitDefaultSColCmprWrapper(SDecoder *pDecoder, SSchemaWrapper *pSchema) { pCmpr->nCols = pSchema->nCols; if ((pCmpr->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pCmpr->nCols * sizeof(SColCmpr))) == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } for (int32_t i = 0; i < pCmpr->nCols; i++) { @@ -149,7 +149,7 @@ int metaDecodeEntry(SDecoder *pCoder, SMetaEntry *pME) { } else if (pME->type == TSDB_TSMA_TABLE) { pME->smaEntry.tsma = tDecoderMalloc(pCoder, sizeof(STSma)); if (!pME->smaEntry.tsma) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } TAOS_CHECK_RETURN(tDecodeTSma(pCoder, pME->smaEntry.tsma, true)); } else { diff --git a/source/dnode/vnode/src/meta/metaQuery.c b/source/dnode/vnode/src/meta/metaQuery.c index b78b141ba9..3f6d17a5a7 100644 --- a/source/dnode/vnode/src/meta/metaQuery.c +++ b/source/dnode/vnode/src/meta/metaQuery.c @@ -1460,7 +1460,7 @@ int32_t metaGetTableTagsByUids(void *pVnode, int64_t suid, SArray *uidList) { if (!p->pTagVal) { if (isLock) metaULock(pMeta); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } memcpy(p->pTagVal, val, len); tdbFree(val); @@ -1511,13 +1511,13 @@ int32_t metaGetTableTags(void *pVnode, uint64_t suid, SArray *pUidTagInfo) { if (!info.pTagVal) { metaCloseCtbCursor(pCur); taosHashCleanup(pSepecifiedUidMap); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } memcpy(info.pTagVal, pCur->pVal, pCur->vLen); if (taosArrayPush(pUidTagInfo, &info) == NULL) { metaCloseCtbCursor(pCur); taosHashCleanup(pSepecifiedUidMap); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } } else { // only the specified tables need to be added @@ -1538,7 +1538,7 @@ int32_t metaGetTableTags(void *pVnode, uint64_t suid, SArray *pUidTagInfo) { if (!pTagInfo->pTagVal) { metaCloseCtbCursor(pCur); taosHashCleanup(pSepecifiedUidMap); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } memcpy(pTagInfo->pTagVal, pCur->pVal, pCur->vLen); } diff --git a/source/dnode/vnode/src/meta/metaSma.c b/source/dnode/vnode/src/meta/metaSma.c index 371cc6ff21..493518462e 100644 --- a/source/dnode/vnode/src/meta/metaSma.c +++ b/source/dnode/vnode/src/meta/metaSma.c @@ -106,7 +106,7 @@ static int metaSaveSmaToDB(SMeta *pMeta, const SMetaEntry *pME) { pVal = taosMemoryMalloc(vLen); if (pVal == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; + terrno = terrno; goto _err; } diff --git a/source/dnode/vnode/src/meta/metaSnapshot.c b/source/dnode/vnode/src/meta/metaSnapshot.c index 0f77ff5e01..12ef5088b8 100644 --- a/source/dnode/vnode/src/meta/metaSnapshot.c +++ b/source/dnode/vnode/src/meta/metaSnapshot.c @@ -98,7 +98,7 @@ int32_t metaSnapRead(SMetaSnapReader* pReader, uint8_t** ppData) { *ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + nData); if (*ppData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -275,7 +275,7 @@ static int32_t saveSuperTableInfoForChildTable(SMetaEntry* me, SHashObj* suidInf STableInfoForChildTable dataTmp = {0}; dataTmp.tableName = taosStrdup(me->name); if (dataTmp.tableName == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto END; } dataTmp.schemaRow = tCloneSSchemaWrapper(&me->stbEntry.schemaRow); diff --git a/source/dnode/vnode/src/meta/metaTable.c b/source/dnode/vnode/src/meta/metaTable.c index fd7e6171c2..0fb8ca3fb1 100644 --- a/source/dnode/vnode/src/meta/metaTable.c +++ b/source/dnode/vnode/src/meta/metaTable.c @@ -151,7 +151,7 @@ static int metaSaveJsonVarToIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const if (pTagVal->nData > 0) { char *val = taosMemoryCalloc(1, pTagVal->nData + VARSTR_HEADER_SIZE); if (val == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, _exception); + TAOS_CHECK_GOTO(terrno, NULL, _exception); } int32_t len = taosUcs4ToMbs((TdUcs4 *)pTagVal->pData, pTagVal->nData, val + VARSTR_HEADER_SIZE); if (len < 0) { @@ -217,7 +217,7 @@ int metaDelJsonVarFromIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSche SIndexMultiTerm *terms = indexMultiTermCreate(); if (terms == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } int16_t nCols = taosArrayGetSize(pTagVals); @@ -235,7 +235,7 @@ int metaDelJsonVarFromIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSche if (pTagVal->nData > 0) { char *val = taosMemoryCalloc(1, pTagVal->nData + VARSTR_HEADER_SIZE); if (val == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, _exception); + TAOS_CHECK_GOTO(terrno, NULL, _exception); } int32_t len = taosUcs4ToMbs((TdUcs4 *)pTagVal->pData, pTagVal->nData, val + VARSTR_HEADER_SIZE); if (len < 0) { @@ -2760,7 +2760,7 @@ int metaCreateTagIdxKey(tb_uid_t suid, int32_t cid, const void *pTagData, int32_ *ppTagIdxKey = (STagIdxKey *)taosMemoryMalloc(*nTagIdxKey); if (*ppTagIdxKey == NULL) { - return terrno = TSDB_CODE_OUT_OF_MEMORY; + return terrno; } (*ppTagIdxKey)->suid = suid; diff --git a/source/dnode/vnode/src/meta/metaTtl.c b/source/dnode/vnode/src/meta/metaTtl.c index 0b5b9280df..e3d6e2cf9b 100644 --- a/source/dnode/vnode/src/meta/metaTtl.c +++ b/source/dnode/vnode/src/meta/metaTtl.c @@ -53,12 +53,12 @@ int32_t ttlMgrOpen(STtlManger **ppTtlMgr, TDB *pEnv, int8_t rollback, const char *ppTtlMgr = NULL; STtlManger *pTtlMgr = (STtlManger *)tdbOsCalloc(1, sizeof(*pTtlMgr)); - if (pTtlMgr == NULL) TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + if (pTtlMgr == NULL) TAOS_RETURN(terrno); char *logBuffer = (char *)tdbOsCalloc(1, strlen(logPrefix) + 1); if (logBuffer == NULL) { tdbOsFree(pTtlMgr); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } (void)strcpy(logBuffer, logPrefix); pTtlMgr->logPrefix = logBuffer; diff --git a/source/dnode/vnode/src/sma/smaEnv.c b/source/dnode/vnode/src/sma/smaEnv.c index c26708bd68..721c0130cf 100644 --- a/source/dnode/vnode/src/sma/smaEnv.c +++ b/source/dnode/vnode/src/sma/smaEnv.c @@ -213,11 +213,11 @@ static int32_t tdInitSmaStat(SSmaStat **pSmaStat, int8_t smaType, const SSma *pS atomic_store_8(RSMA_TRIGGER_STAT(pRSmaStat), TASK_TRIGGER_STAT_INIT); (void)tsem_init(&pRSmaStat->notEmpty, 0, 0); if (!(pRSmaStat->blocks = taosArrayInit(1, sizeof(SSDataBlock)))) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TAOS_CHECK_GOTO(code, &lino, _exit); } SSDataBlock datablock = {.info.type = STREAM_CHECKPOINT}; - TSDB_CHECK_NULL(taosArrayPush(pRSmaStat->blocks, &datablock), code, lino, _exit, TSDB_CODE_OUT_OF_MEMORY); + TSDB_CHECK_NULL(taosArrayPush(pRSmaStat->blocks, &datablock), code, lino, _exit, terrno); // init smaMgmt TAOS_CHECK_GOTO(smaInit(), &lino, _exit); diff --git a/source/dnode/vnode/src/sma/smaRollup.c b/source/dnode/vnode/src/sma/smaRollup.c index 69819c87dc..14e79200aa 100644 --- a/source/dnode/vnode/src/sma/smaRollup.c +++ b/source/dnode/vnode/src/sma/smaRollup.c @@ -273,7 +273,7 @@ static int32_t tdSetRSmaInfoItemParams(SSma *pSma, SRSmaParam *param, SRSmaStat if (!taosCheckExistFile(taskInfDir)) { char *s = taosStrdup(taskInfDir); if (!s) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } if (taosMulMkDir(s) != 0) { code = TAOS_SYSTEM_ERROR(errno); @@ -294,7 +294,7 @@ static int32_t tdSetRSmaInfoItemParams(SSma *pSma, SRSmaParam *param, SRSmaStat pStreamTask->pMeta = pVnode->pTq->pStreamMeta; pStreamTask->exec.qmsg = taosMemoryMalloc(strlen(RSMA_EXEC_TASK_FLAG) + 1); if (!pStreamTask->exec.qmsg) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } (void)sprintf(pStreamTask->exec.qmsg, "%s", RSMA_EXEC_TASK_FLAG); pStreamTask->chkInfo.checkpointId = streamMetaGetLatestCheckpointId(pStreamTask->pMeta); @@ -321,7 +321,7 @@ static int32_t tdSetRSmaInfoItemParams(SSma *pSma, SRSmaParam *param, SRSmaStat } if (!(pItem->pResList = taosArrayInit(1, POINTER_BYTES))) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } if (pItem->fetchResultVer < pItem->submitReqVer) { @@ -504,11 +504,11 @@ static int32_t tdUidStorePut(STbUidStore *pStore, tb_uid_t suid, tb_uid_t *uid) if (uid) { if (!pStore->tbUids) { if (!(pStore->tbUids = taosArrayInit(1, sizeof(tb_uid_t)))) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } if (!taosArrayPush(pStore->tbUids, uid)) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } } else { @@ -516,7 +516,7 @@ static int32_t tdUidStorePut(STbUidStore *pStore, tb_uid_t suid, tb_uid_t *uid) if (!pStore->uidHash) { pStore->uidHash = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_ENTRY_LOCK); if (!pStore->uidHash) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } if (uid) { @@ -524,16 +524,16 @@ static int32_t tdUidStorePut(STbUidStore *pStore, tb_uid_t suid, tb_uid_t *uid) if (uidArray && ((uidArray = *(SArray **)uidArray))) { if (!taosArrayPush(uidArray, uid)) { taosArrayDestroy(uidArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } else { SArray *pUidArray = taosArrayInit(1, sizeof(tb_uid_t)); if (!pUidArray) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } if (!taosArrayPush(pUidArray, uid)) { taosArrayDestroy(pUidArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } TAOS_CHECK_RETURN(taosHashPut(pStore->uidHash, &suid, sizeof(suid), &pUidArray, sizeof(pUidArray))); } @@ -634,7 +634,7 @@ static int32_t tdRSmaProcessDelReq(SSma *pSma, int64_t suid, int8_t level, SBatc void *pBuf = rpcMallocCont(len + sizeof(SMsgHead)); if (!pBuf) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -696,7 +696,7 @@ static int32_t tdRSmaExecAndSubmitResult(SSma *pSma, qTaskInfo_t taskInfo, SRSma SBatchDeleteReq deleteReq = {.suid = suid, .level = pItem->level}; deleteReq.deleteReqs = taosArrayInit(0, sizeof(SSingleDeleteReq)); if (!deleteReq.deleteReqs) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } code = tqBuildDeleteReq(pSma->pVnode->pTq, NULL, output, &deleteReq, "", true); @@ -1065,7 +1065,7 @@ static int32_t tdRSmaRestoreQTaskInfoInit(SSma *pSma, int64_t *nTables) { tb_uid_t suid = 0; if (!(suidList = taosArrayInit(1, sizeof(tb_uid_t)))) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -1085,7 +1085,7 @@ static int32_t tdRSmaRestoreQTaskInfoInit(SSma *pSma, int64_t *nTables) { int64_t nRsmaTables = 0; metaReaderDoInit(&mr, SMA_META(pSma), META_READER_LOCK); if (!(uidStore.tbUids = taosArrayInit(1024, sizeof(tb_uid_t)))) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -1518,7 +1518,7 @@ static int32_t tdRSmaBatchExec(SSma *pSma, SRSmaInfo *pInfo, STaosQall *qall, SA version = packData.ver; if (!taosArrayPush(pSubmitArr, &packData)) { taosFreeQitem(msg); - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } ++nSubmit; } else if (inputType == STREAM_INPUT__REF_DATA_BLOCK) { @@ -1608,7 +1608,7 @@ int32_t tdRSmaProcessExecImpl(SSma *pSma, ERsmaExecType type) { if (!(pSubmitArr = taosArrayInit(TMIN(RSMA_EXEC_BATCH_SIZE, atomic_load_64(&pRSmaStat->nBufItems)), sizeof(SPackedData)))) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } diff --git a/source/dnode/vnode/src/sma/smaTimeRange.c b/source/dnode/vnode/src/sma/smaTimeRange.c index f66282ac25..58dafa4f8b 100644 --- a/source/dnode/vnode/src/sma/smaTimeRange.c +++ b/source/dnode/vnode/src/sma/smaTimeRange.c @@ -170,12 +170,12 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema * pReq->aSubmitTbData = taosArrayInit(1, sizeof(SSubmitTbData)); if (pReq->aSubmitTbData == NULL) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } pTableIndexMap = taosHashInit(numOfBlocks, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_NO_LOCK); if (pTableIndexMap == NULL) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } // SSubmitTbData req @@ -205,7 +205,7 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema * } if( taosArrayPush(pReq->aSubmitTbData, &tbData) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; continue; } @@ -232,7 +232,7 @@ int32_t smaBlockToSubmit(SVnode *pVnode, const SArray *pBlocks, const STSchema * SEncoder encoder; len += sizeof(SSubmitReq2Msg); if (!(pBuf = rpcMallocCont(len))) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -277,7 +277,7 @@ static int32_t tsmaProcessDelReq(SSma *pSma, int64_t indexUid, SBatchDeleteReq * void *pBuf = rpcMallocCont(len + sizeof(SMsgHead)); if (!pBuf) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index a2c088de68..e5aefaedd2 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -74,7 +74,7 @@ int32_t tqOpen(const char* path, SVnode* pVnode) { pTq->pHandle = taosHashInit(64, MurmurHash3_32, true, HASH_ENTRY_LOCK); if (pTq->pHandle == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } taosHashSetFreeFp(pTq->pHandle, tqDestroyTqHandle); @@ -82,18 +82,18 @@ int32_t tqOpen(const char* path, SVnode* pVnode) { pTq->pPushMgr = taosHashInit(64, MurmurHash3_32, false, HASH_NO_LOCK); if (pTq->pPushMgr == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } pTq->pCheckInfo = taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_ENTRY_LOCK); if (pTq->pCheckInfo == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } taosHashSetFreeFp(pTq->pCheckInfo, (FDelete)tDeleteSTqCheckInfo); pTq->pOffset = taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_VARCHAR), true, HASH_ENTRY_LOCK); if (pTq->pOffset == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } taosHashSetFreeFp(pTq->pOffset, (FDelete)tDeleteSTqOffset); @@ -464,7 +464,6 @@ int32_t tqProcessVgCommittedInfoReq(STQ* pTq, SRpcMsg* pMsg) { void* buf = rpcMallocCont(len); if (buf == NULL) { - terrno = TSDB_CODE_OUT_OF_MEMORY; return terrno; } SEncoder encoder = {0}; diff --git a/source/dnode/vnode/src/tq/tqMeta.c b/source/dnode/vnode/src/tq/tqMeta.c index 460ed89a4b..b9cf26ee54 100644 --- a/source/dnode/vnode/src/tq/tqMeta.c +++ b/source/dnode/vnode/src/tq/tqMeta.c @@ -198,7 +198,7 @@ int32_t tqMetaGetOffset(STQ* pTq, const char* subkey, STqOffset** pOffset){ if (taosHashPut(pTq->pOffset, subkey, strlen(subkey), &offset, sizeof(STqOffset)) != 0) { tDeleteSTqOffset(&offset); tdbFree(data); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } tdbFree(data); @@ -346,7 +346,7 @@ int32_t tqMetaCreateHandle(STQ* pTq, SMqRebVgReq* req, STqHandle* handle) { handle->execHandle.execDb.pFilterOutTbUid = taosHashInit(64, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_ENTRY_LOCK); if(handle->execHandle.execDb.pFilterOutTbUid == NULL){ - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } }else if(req->subType == TOPIC_SUB_TYPE__TABLE){ handle->execHandle.execTb.suid = req->suid; diff --git a/source/dnode/vnode/src/tq/tqRead.c b/source/dnode/vnode/src/tq/tqRead.c index eb5d6aafe7..6dc5453d50 100644 --- a/source/dnode/vnode/src/tq/tqRead.c +++ b/source/dnode/vnode/src/tq/tqRead.c @@ -577,7 +577,7 @@ static int32_t buildResSDataBlock(SSDataBlock* pBlock, SSchemaWrapper* pSchema, int32_t code = blockDataAppendColInfo(pBlock, &colInfo); if (code != TSDB_CODE_SUCCESS) { blockDataFreeRes(pBlock); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } } else { diff --git a/source/dnode/vnode/src/tq/tqScan.c b/source/dnode/vnode/src/tq/tqScan.c index 527001e679..14b347ce73 100644 --- a/source/dnode/vnode/src/tq/tqScan.c +++ b/source/dnode/vnode/src/tq/tqScan.c @@ -36,11 +36,11 @@ int32_t tqAddBlockDataToRsp(const SSDataBlock* pBlock, void* pRsp, int32_t numOf actualLen += sizeof(SRetrieveTableRspForTmq); if (taosArrayPush(((SMqDataRspCommon*)pRsp)->blockDataLen, &actualLen) == NULL){ taosMemoryFree(buf); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } if (taosArrayPush(((SMqDataRspCommon*)pRsp)->blockData, &buf) == NULL) { taosMemoryFree(buf); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } return TSDB_CODE_SUCCESS; @@ -52,7 +52,7 @@ static int32_t tqAddBlockSchemaToRsp(const STqExecHandle* pExec, void* pRsp) { return TSDB_CODE_OUT_OF_MEMORY; } if (taosArrayPush(((SMqDataRspCommon*)pRsp)->blockSchema, &pSW) == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } return 0; } @@ -327,12 +327,12 @@ static void tqProcessSubData(STQ* pTq, STqHandle* pHandle, STaosxRsp* pRsp, int3 if (pRsp->createTableNum == 0) { pRsp->createTableLen = taosArrayInit(0, sizeof(int32_t)); if (pRsp->createTableLen == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto END; } pRsp->createTableReq = taosArrayInit(0, sizeof(void*)); if (pRsp->createTableReq == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto END; } } diff --git a/source/dnode/vnode/src/tq/tqSink.c b/source/dnode/vnode/src/tq/tqSink.c index c42d5e7de5..b18fa42cae 100644 --- a/source/dnode/vnode/src/tq/tqSink.c +++ b/source/dnode/vnode/src/tq/tqSink.c @@ -198,7 +198,7 @@ int32_t initCreateTableMsg(SVCreateTbReq* pCreateTableReq, uint64_t suid, const pCreateTableReq->ctb.stbName = taosStrdup((char*)tNameGetTableName(&name)); if (pCreateTableReq->ctb.stbName == NULL) { // ignore this error code tqError("failed to duplicate the stb name:%s, failed to init create-table msg and create req table", stbFullName); - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; } } @@ -291,7 +291,7 @@ static int32_t doBuildAndSendCreateTableMsg(SVnode* pVnode, char* stbFullName, S void* p = taosArrayPush(tagArray, &tagVal); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } code = createDefaultTagColName(&pCreateTbReq->ctb.tagName); @@ -317,7 +317,7 @@ static int32_t doBuildAndSendCreateTableMsg(SVnode* pVnode, char* stbFullName, S } void* p = taosArrayPush(tagArray, &tagVal); if (p == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } } @@ -356,7 +356,7 @@ static int32_t doBuildAndSendCreateTableMsg(SVnode* pVnode, char* stbFullName, S void* p = taosArrayPush(reqs.pArray, pCreateTbReq); if (p == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } @@ -446,13 +446,13 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c if (pNewRow->ts < pOldRow->ts) { void* p = taosArrayPush(pFinal, &pNewRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } j += 1; } else if (pNewRow->ts > pOldRow->ts) { void* p = taosArrayPush(pFinal, &pOldRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } k += 1; @@ -461,7 +461,7 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c if (pNewRow->numOfPKs == 0) { void* p = taosArrayPush(pFinal, &pNewRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } k += 1; @@ -478,7 +478,7 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c if (ret <= 0) { void* p = taosArrayPush(pFinal, &pNewRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } j += 1; @@ -490,7 +490,7 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c } else { void* p = taosArrayPush(pFinal, &pOldRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } k += 1; @@ -503,7 +503,7 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c SRow* pRow = *(SRow**)TARRAY_GET_ELEM(pNew->aRowP, j++); void* p = taosArrayPush(pFinal, &pRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -511,7 +511,7 @@ int32_t doMergeExistedRows(SSubmitTbData* pExisted, const SSubmitTbData* pNew, c SRow* pRow = *(SRow**)TARRAY_GET_ELEM(pExisted->aRowP, k++); void* p = taosArrayPush(pFinal, &pRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -564,7 +564,7 @@ int32_t buildAutoCreateTableReq(const char* stbFullName, int64_t suid, int32_t n STagVal tagVal = {.cid = numOfCols, .type = TSDB_DATA_TYPE_UBIGINT, .i64 = pDataBlock->info.id.groupId}; void* p = taosArrayPush(pTagArray, &tagVal); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } code = tTagNew(pTagArray, 1, false, (STag**)&pCreateTbReq->ctb.pTag); @@ -604,7 +604,7 @@ int32_t buildSubmitMsgImpl(SSubmitReq2* pSubmitReq, int32_t vgId, void** pMsg, i pBuf = rpcMallocCont(len); if (NULL == pBuf) { tDestroySubmitReq(pSubmitReq, TSDB_MSG_FLG_ENCODE); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } ((SSubmitReq2Msg*)pBuf)->header.vgId = vgId; @@ -652,7 +652,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat taosArrayDestroy(pTableData->aRowP); pTableData->aRowP = NULL; taosArrayDestroy(pVals); - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; tqError("s-task:%s failed to prepare write stream res blocks, code:%s", id, tstrerror(code)); return code; } @@ -695,7 +695,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat SColVal cv = COL_VAL_NULL(pCol->colId, pCol->type); void* p = taosArrayPush(pVals, &cv); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } else { SColumnInfoData* pColData = taosArrayGet(pDataBlock->pDataBlock, dataIndex); @@ -713,7 +713,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat SColVal cv = COL_VAL_NULL(pCol->colId, pCol->type); void* p = taosArrayPush(pVals, &cv); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } dataIndex++; @@ -725,7 +725,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat SColVal cv = COL_VAL_VALUE(pCol->colId, sv); void* p = taosArrayPush(pVals, &cv); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } else { SValue sv = {.type = pCol->type}; @@ -733,7 +733,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat SColVal cv = COL_VAL_VALUE(pCol->colId, sv); void* p = taosArrayPush(pVals, &cv); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } dataIndex++; @@ -752,7 +752,7 @@ int32_t doConvertRows(SSubmitTbData* pTableData, const STSchema* pTSchema, SSDat void* p = taosArrayPush(pTableData->aRowP, &pRow); if (p == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -1026,7 +1026,7 @@ void tqSinkDataIntoDstTable(SStreamTask* pTask, void* vnode, void* data) { SSubmitReq2 submitReq = {.aSubmitTbData = taosArrayInit(1, sizeof(SSubmitTbData))}; if (submitReq.aSubmitTbData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; tqError("s-task:%s vgId:%d failed to prepare submit msg in sink task, code:%s", id, vgId, tstrerror(code)); return; } @@ -1066,7 +1066,7 @@ void tqSinkDataIntoDstTable(SStreamTask* pTask, void* vnode, void* data) { SSubmitReq2 submitReq = {.aSubmitTbData = taosArrayInit(1, sizeof(SSubmitTbData))}; if (submitReq.aSubmitTbData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; tqError("s-task:%s vgId:%d failed to prepare submit msg in sink task, code:%s", id, vgId, tstrerror(code)); taosHashCleanup(pTableIndexMap); return; diff --git a/source/dnode/vnode/src/tq/tqSnapshot.c b/source/dnode/vnode/src/tq/tqSnapshot.c index e06301ef53..8861f1f49f 100644 --- a/source/dnode/vnode/src/tq/tqSnapshot.c +++ b/source/dnode/vnode/src/tq/tqSnapshot.c @@ -33,7 +33,7 @@ int32_t tqSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, int8_t type, STqS // alloc pReader = (STqSnapReader*)taosMemoryCalloc(1, sizeof(STqSnapReader)); if (pReader == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _err; } pReader->pTq = pTq; diff --git a/source/dnode/vnode/src/tq/tqStreamStateSnap.c b/source/dnode/vnode/src/tq/tqStreamStateSnap.c index 70bda848bb..00e6104bd0 100644 --- a/source/dnode/vnode/src/tq/tqStreamStateSnap.c +++ b/source/dnode/vnode/src/tq/tqStreamStateSnap.c @@ -95,7 +95,7 @@ int32_t streamStateSnapRead(SStreamStateReader* pReader, uint8_t** ppData) { } *ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + len); if (*ppData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _err; } // refactor later, avoid mem/free freq diff --git a/source/dnode/vnode/src/tq/tqStreamTask.c b/source/dnode/vnode/src/tq/tqStreamTask.c index 8cd04b48f6..ae3d113c66 100644 --- a/source/dnode/vnode/src/tq/tqStreamTask.c +++ b/source/dnode/vnode/src/tq/tqStreamTask.c @@ -96,7 +96,7 @@ int32_t tqScanWalInFuture(STQ* pTq, int32_t numOfTasks, int32_t idleDuration) { SBuildScanWalMsgParam* pParam = taosMemoryMalloc(sizeof(SBuildScanWalMsgParam)); if (pParam == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } pParam->pTq = pTq; diff --git a/source/dnode/vnode/src/tq/tqStreamTaskSnap.c b/source/dnode/vnode/src/tq/tqStreamTaskSnap.c index c49efdb042..2605d70c37 100644 --- a/source/dnode/vnode/src/tq/tqStreamTaskSnap.c +++ b/source/dnode/vnode/src/tq/tqStreamTaskSnap.c @@ -46,7 +46,7 @@ int32_t streamTaskSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamTa pReader->ever = ever; pReader->tdbTbList = taosArrayInit(4, sizeof(STablePair)); if (pReader->tdbTbList == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, NULL, _err); + TAOS_CHECK_GOTO(terrno, NULL, _err); } STablePair pair1 = {.tbl = pTq->pStreamMeta->pTaskDb, .type = SNAP_DATA_STREAM_TASK}; @@ -159,7 +159,7 @@ NextTbl: } *ppData = taosMemoryMalloc(sizeof(SSnapDataHdr) + vLen); if (*ppData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _err; } diff --git a/source/dnode/vnode/src/tq/tqUtil.c b/source/dnode/vnode/src/tq/tqUtil.c index 495fcd771a..5b83df3217 100644 --- a/source/dnode/vnode/src/tq/tqUtil.c +++ b/source/dnode/vnode/src/tq/tqUtil.c @@ -25,7 +25,7 @@ int32_t tqInitDataRsp(SMqDataRspCommon* pRsp, STqOffsetVal pOffset) { pRsp->blockDataLen = taosArrayInit(0, sizeof(int32_t)); if (pRsp->blockData == NULL || pRsp->blockDataLen == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } tOffsetCopy(&pRsp->reqOffset, &pOffset); @@ -71,7 +71,7 @@ static int32_t tqInitTaosxRsp(SMqDataRspCommon* pRsp, STqOffsetVal pOffset) { taosArrayDestroy(pRsp->blockSchema); pRsp->blockSchema = NULL; } - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } return 0; @@ -540,7 +540,7 @@ int32_t tqDoSendDataRsp(const SRpcHandleInfo* pRpcHandleInfo, const void* pRsp, int32_t tlen = sizeof(SMqRspHead) + len; void* buf = rpcMallocCont(tlen); if (buf == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } SMqRspHead* pHead = (SMqRspHead*)buf; diff --git a/source/dnode/vnode/src/tqCommon/tqCommon.c b/source/dnode/vnode/src/tqCommon/tqCommon.c index 116acd4636..30be253b65 100644 --- a/source/dnode/vnode/src/tqCommon/tqCommon.c +++ b/source/dnode/vnode/src/tqCommon/tqCommon.c @@ -578,7 +578,7 @@ int32_t tqStreamTaskProcessCheckpointReadyMsg(SStreamMeta* pMeta, SRpcMsg* pMsg) { // send checkpoint ready rsp SMStreamCheckpointReadyRspMsg* pReadyRsp = rpcMallocCont(sizeof(SMStreamCheckpointReadyRspMsg)); if (pReadyRsp == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } pReadyRsp->upstreamTaskId = req.upstreamTaskId; diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 9cdd4dcdb5..3983b6eded 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -425,7 +425,7 @@ static int32_t tsdbCacheSerialize(SLastCol *pLastCol, char **value, size_t *size *value = taosMemoryMalloc(*size); if (NULL == *value) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } int32_t offset = tsdbCacheSerializeV0(*value, pLastCol); @@ -509,7 +509,7 @@ static int32_t reallocVarDataVal(SValue *pValue) { if (nData > 0) { uint8_t *p = taosMemoryMalloc(nData); if (!p) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } pValue->pData = p; (void)memcpy(pValue->pData, pVal, nData); @@ -1115,11 +1115,11 @@ static int32_t tsdbCacheUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SArray if (!remainCols) { remainCols = taosArrayInit(num_keys * 2, sizeof(SIdxKey)); if (!remainCols) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } } if (!taosArrayPush(remainCols, &(SIdxKey){i, *key})) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } } } @@ -1273,7 +1273,7 @@ int32_t tsdbCacheRowFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, int6 for (SColVal *pColVal = tsdbRowIterNext(&iter); pColVal && iCol < nCol; pColVal = tsdbRowIterNext(&iter), iCol++) { SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST_ROW, .tsdbRowKey = tsdbRowKey, .colVal = *pColVal}; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } if (!COL_VAL_IS_VALUE(pColVal)) { @@ -1284,7 +1284,7 @@ int32_t tsdbCacheRowFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, int6 } updateCtx.lflag = LFLAG_LAST; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } } tsdbRowClose(&iter); @@ -1310,7 +1310,7 @@ int32_t tsdbCacheRowFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, int6 if (COL_VAL_IS_VALUE(&colVal)) { SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST, .tsdbRowKey = tsdbRowKey, .colVal = colVal}; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } (void)tSimpleHashIterateRemove(iColHash, &iCol, sizeof(iCol), &pIte, &iter); } @@ -1352,7 +1352,7 @@ int32_t tsdbCacheColFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SBlo .colVal = COL_VAL_VALUE(PRIMARYKEY_TIMESTAMP_COL_ID, ((SValue){.type = TSDB_DATA_TYPE_TIMESTAMP, .val = lRow.pBlockData->aTSKEY[lRow.iRow]}))}; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } } @@ -1375,7 +1375,7 @@ int32_t tsdbCacheColFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SBlo SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST, .tsdbRowKey = tsdbRowKey, .colVal = colVal}; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } break; } @@ -1388,7 +1388,7 @@ int32_t tsdbCacheColFormatUpdate(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, SBlo for (SColVal *pColVal = tsdbRowIterNext(&iter); pColVal; pColVal = tsdbRowIterNext(&iter)) { SLastUpdateCtx updateCtx = {.lflag = LFLAG_LAST_ROW, .tsdbRowKey = tsdbRowKey, .colVal = *pColVal}; if (!taosArrayPush(ctxArray, &updateCtx)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } } tsdbRowClose(&iter); @@ -1423,7 +1423,7 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr SLastKey *key = &(SLastKey){.lflag = ltype, .uid = uid, .cid = PRIMARYKEY_TIMESTAMP_COL_ID}; if (!taosArrayInsert(remainCols, 0, &(SIdxKey){0, *key})) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } @@ -1447,7 +1447,7 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr int lastrowIndex = 0; if (!slotIds || !lastColIds || !lastSlotIds || !lastrowColIds || !lastrowSlotIds) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } for (int i = 0; i < num_keys; ++i) { @@ -1457,11 +1457,11 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr if (NULL == lastTmpIndexArray) { lastTmpIndexArray = taosArrayInit(num_keys, sizeof(int32_t)); if (!lastTmpIndexArray) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } } if (!taosArrayPush(lastTmpIndexArray, &(i))) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } lastColIds[lastIndex] = idxKey->key.cid; lastSlotIds[lastIndex] = pr->pSlotIds[idxKey->idx]; @@ -1470,11 +1470,11 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr if (NULL == lastrowTmpIndexArray) { lastrowTmpIndexArray = taosArrayInit(num_keys, sizeof(int32_t)); if (!lastrowTmpIndexArray) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } } if (!taosArrayPush(lastrowTmpIndexArray, &(i))) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } lastrowColIds[lastrowIndex] = idxKey->key.cid; lastrowSlotIds[lastrowIndex] = pr->pSlotIds[idxKey->idx]; @@ -1484,7 +1484,7 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr pTmpColArray = taosArrayInit(lastIndex + lastrowIndex, sizeof(SLastCol)); if (!pTmpColArray) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } if (lastTmpIndexArray != NULL) { @@ -1492,7 +1492,7 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr for (int i = 0; i < taosArrayGetSize(lastTmpColArray); i++) { if (!taosArrayInsert(pTmpColArray, *(int32_t *)taosArrayGet(lastTmpIndexArray, i), taosArrayGet(lastTmpColArray, i))) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } } } @@ -1502,7 +1502,7 @@ static int32_t tsdbCacheLoadFromRaw(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArr for (int i = 0; i < taosArrayGetSize(lastrowTmpColArray); i++) { if (!taosArrayInsert(pTmpColArray, *(int32_t *)taosArrayGet(lastrowTmpIndexArray, i), taosArrayGet(lastrowTmpColArray, i))) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } } } @@ -1594,7 +1594,7 @@ static int32_t tsdbCacheLoadFromRocks(STsdb *pTsdb, tb_uid_t uid, SArray *pLastA if (!keys_list || !keys_list_sizes || !key_list) { taosMemoryFree(keys_list); taosMemoryFree(keys_list_sizes); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } char **values_list = NULL; size_t *values_list_sizes = NULL; @@ -1631,7 +1631,7 @@ static int32_t tsdbCacheLoadFromRocks(STsdb *pTsdb, tb_uid_t uid, SArray *pLastA SLastCol *pTmpLastCol = taosMemoryCalloc(1, sizeof(SLastCol)); if (!pTmpLastCol) { taosMemoryFreeClear(pToFree); - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } size_t charge = 0; @@ -1720,7 +1720,7 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache TAOS_CHECK_GOTO(tsdbCacheReallocSLastCol(&lastCol, NULL), NULL, _exit); if (taosArrayPush(pLastArray, &lastCol) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } } else { @@ -1729,29 +1729,29 @@ int32_t tsdbCacheGetBatch(STsdb *pTsdb, tb_uid_t uid, SArray *pLastArray, SCache .colVal = COL_VAL_NONE(cid, pr->pSchema->columns[pr->pSlotIds[i]].type)}; if (taosArrayPush(pLastArray, &noneCol) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } if (!remainCols) { if ((remainCols = taosArrayInit(numKeys, sizeof(SIdxKey))) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } } if (!ignoreFromRocks) { if ((ignoreFromRocks = taosArrayInit(numKeys, sizeof(bool))) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } } if (taosArrayPush(remainCols, &(SIdxKey){i, key}) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } bool ignoreRocks = pLastCol ? (pLastCol->cacheStatus == TSDB_LAST_CACHE_NO_CACHE) : false; if (taosArrayPush(ignoreFromRocks, &ignoreRocks) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } } @@ -1844,7 +1844,7 @@ int32_t tsdbCacheDel(STsdb *pTsdb, tb_uid_t suid, tb_uid_t uid, TSKEY sKey, TSKE remainCols = taosArrayInit(numCols * 2, sizeof(SIdxKey)); } if (!taosArrayPush(remainCols, &(SIdxKey){i, lastKey})) { - TAOS_CHECK_EXIT(TSDB_CODE_OUT_OF_MEMORY); + TAOS_CHECK_EXIT(terrno); } } } @@ -2032,7 +2032,7 @@ static int32_t getTableDelDataFromTbData(STbData *pTbData, SArray *aDelData) { for (; pDelData; pDelData = pDelData->pNext) { if (!taosArrayPush(aDelData, pDelData)) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } @@ -2098,7 +2098,7 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea uint64_t *uidList = getUidList(pReader); if (!uidList) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } for (int i = 0, j = 0; i < pTombBlkArray->size && j < numOfTables; ++i) { @@ -2176,7 +2176,7 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea if (pInfo->pTombData == NULL) { pInfo->pTombData = taosArrayInit(4, sizeof(SDelData)); if (!pInfo->pTombData) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; finished = true; break; } @@ -2189,7 +2189,7 @@ static int32_t loadTombFromBlk(const TTombBlkArray *pTombBlkArray, SCacheRowsRea SDelData delData = {.version = record.version, .sKey = record.skey, .eKey = record.ekey}; if (!taosArrayPush(pInfo->pTombData, &delData)) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } } @@ -2397,7 +2397,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie if (!state->pIndexList) { state->pIndexList = taosArrayInit(1, sizeof(SBrinBlk)); if (!state->pIndexList) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _err); + TAOS_CHECK_GOTO(terrno, &lino, _err); } } else { taosArrayClear(state->pIndexList); @@ -2410,7 +2410,7 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow, bool *pIgnoreEarlie if (state->suid >= pBrinBlk->minTbid.suid && state->suid <= pBrinBlk->maxTbid.suid) { if (state->uid >= pBrinBlk->minTbid.uid && state->uid <= pBrinBlk->maxTbid.uid) { if (!taosArrayPush(state->pIndexList, pBrinBlk)) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _err); + TAOS_CHECK_GOTO(terrno, &lino, _err); } } } else if (state->suid > pBrinBlk->maxTbid.suid || @@ -2971,7 +2971,7 @@ static int32_t nextRowIterGet(CacheNextRowIter *pIter, TSDBROW **ppRow, bool *pI if (!pIter->pSkyline) { pIter->pSkyline = taosArrayInit(32, sizeof(TSDBKEY)); - TSDB_CHECK_NULL(pIter->pSkyline, code, lino, _err, TSDB_CODE_OUT_OF_MEMORY); + TSDB_CHECK_NULL(pIter->pSkyline, code, lino, _err, terrno); uint64_t uid = pIter->idx.uid; STableLoadInfo *pInfo = getTableLoadInfo(pIter->pr, uid); @@ -2979,7 +2979,7 @@ static int32_t nextRowIterGet(CacheNextRowIter *pIter, TSDBROW **ppRow, bool *pI if (pInfo->pTombData == NULL) { pInfo->pTombData = taosArrayInit(4, sizeof(SDelData)); - TSDB_CHECK_NULL(pInfo->pTombData, code, lino, _err, TSDB_CODE_OUT_OF_MEMORY); + TSDB_CHECK_NULL(pInfo->pTombData, code, lino, _err, terrno); } if (!taosArrayAddAll(pInfo->pTombData, pIter->pMemDelData)) { @@ -3024,7 +3024,7 @@ _err: static int32_t initLastColArrayPartial(STSchema *pTSchema, SArray **ppColArray, int16_t *slotIds, int nCols) { SArray *pColArray = taosArrayInit(nCols, sizeof(SLastCol)); if (NULL == pColArray) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } for (int32_t i = 0; i < nCols; ++i) { @@ -3032,7 +3032,7 @@ static int32_t initLastColArrayPartial(STSchema *pTSchema, SArray **ppColArray, SLastCol col = {.rowKey.ts = 0, .colVal = COL_VAL_NULL(pTSchema->columns[slotId].colId, pTSchema->columns[slotId].type)}; if (!taosArrayPush(pColArray, &col)) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } *ppColArray = pColArray; @@ -3044,7 +3044,7 @@ static int32_t cloneTSchema(STSchema *pSrc, STSchema **ppDst) { int32_t len = sizeof(STSchema) + sizeof(STColumn) * pSrc->numOfCols; *ppDst = taosMemoryMalloc(len); if (NULL == *ppDst) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } memcpy(*ppDst, pSrc, len); @@ -3083,14 +3083,14 @@ static int32_t mergeLastCid(tb_uid_t uid, STsdb *pTsdb, SArray **ppLastArray, SC if (NULL == aColArray) { taosArrayDestroy(pColArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } for (int i = 0; i < nCols; ++i) { if (!taosArrayPush(aColArray, &aCols[i])) { taosArrayDestroy(pColArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } @@ -3260,14 +3260,14 @@ static int32_t mergeLastRowCid(tb_uid_t uid, STsdb *pTsdb, SArray **ppLastArray, if (NULL == aColArray) { taosArrayDestroy(pColArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } for (int i = 0; i < nCols; ++i) { if (!taosArrayPush(aColArray, &aCols[i])) { taosArrayDestroy(pColArray); - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } } @@ -3496,7 +3496,7 @@ int32_t tsdbCacheSetPageS3(SLRUCache *pCache, STsdbFD *pFD, int64_t pgno, uint8_ _taos_lru_deleter_t deleter = deleteBCache; uint8_t *pPg = taosMemoryMalloc(charge); if (!pPg) { - TAOS_RETURN(TSDB_CODE_OUT_OF_MEMORY); + TAOS_RETURN(terrno); } memcpy(pPg, pPage, charge); diff --git a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c index 9a601c4c75..9e37e785f8 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCacheRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbCacheRead.c @@ -74,7 +74,7 @@ static int32_t saveOneRow(SArray* pRow, SSDataBlock* pBlock, SCacheRowsReader* p SArray* funcTypeBlockArray = taosArrayInit(pReader->numOfCols, sizeof(int32_t)); if (funcTypeBlockArray == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } for (int32_t i = 0; i < pReader->numOfCols; ++i) { @@ -98,7 +98,7 @@ static int32_t saveOneRow(SArray* pRow, SSDataBlock* pBlock, SCacheRowsReader* p void* px = taosArrayInsert(funcTypeBlockArray, dstSlotIds[i], pVal); if (px == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -282,7 +282,7 @@ int32_t tsdbReuseCacherowsReader(void* reader, void* pTableIdList, int32_t numOf destroySttBlockReader(pReader->pLDataIterArray, NULL); pReader->pLDataIterArray = taosArrayInit(4, POINTER_BYTES); - return (pReader->pLDataIterArray != NULL) ? TSDB_CODE_SUCCESS : TSDB_CODE_OUT_OF_MEMORY; + return (pReader->pLDataIterArray != NULL) ? TSDB_CODE_SUCCESS : terrno; } int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, int32_t numOfTables, int32_t numOfCols, @@ -343,7 +343,7 @@ int32_t tsdbCacherowsReaderOpen(void* pVnode, int32_t type, void* pTableIdList, p->transferBuf[i] = taosMemoryMalloc(p->pSchema->columns[i].bytes); if (p->transferBuf[i] == NULL) { tsdbCacherowsReaderClose(p); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } } @@ -456,7 +456,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 pr->pReadSnap = NULL; pRow = taosArrayInit(TARRAY_SIZE(pr->pCidList), sizeof(SLastCol)); if (pRow == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } @@ -494,7 +494,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 if (HASTYPE(pr->type, CACHESCAN_RETRIEVE_TYPE_SINGLE)) { SArray* pLastCols = taosArrayInit(pr->numOfCols, sizeof(SLastCol)); if (pLastCols == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } @@ -504,7 +504,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 SLastCol p = {.rowKey.ts = INT64_MIN, .colVal.value.type = TSDB_DATA_TYPE_BOOL, .colVal.flag = CV_FLAG_NULL}; void* px = taosArrayPush(pLastCols, &p); if (px == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } continue; @@ -537,7 +537,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 void* px = taosArrayPush(pLastCols, &p); if (px == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } } @@ -600,7 +600,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 if (TARRAY_SIZE(pTableUidList) == 0) { void* px = taosArrayPush(pTableUidList, &uid); if (px == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } } else { @@ -676,7 +676,7 @@ int32_t tsdbRetrieveCacheRows(void* pReader, SSDataBlock* pResBlock, const int32 void* px = taosArrayPush(pTableUidList, &uid); if (px == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _end; } diff --git a/source/dnode/vnode/src/tsdb/tsdbCommit2.c b/source/dnode/vnode/src/tsdb/tsdbCommit2.c index d9d951d591..32371dc399 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCommit2.c +++ b/source/dnode/vnode/src/tsdb/tsdbCommit2.c @@ -439,7 +439,7 @@ static int32_t tsdbCommitInfoInit(STsdb *pTsdb) { pTsdb->commitInfo->arr = taosArrayInit(0, sizeof(SFileSetCommitInfo *)); if (pTsdb->commitInfo->arr == NULL) { - TSDB_CHECK_CODE(code = TSDB_CODE_OUT_OF_MEMORY, lino, _exit); + TSDB_CHECK_CODE(code = terrno, lino, _exit); } _exit: @@ -457,7 +457,7 @@ static int32_t tsdbCommitInfoAdd(STsdb *tsdb, int32_t fid) { SFileSetCommitInfo *tinfo; if ((tinfo = taosMemoryMalloc(sizeof(*tinfo))) == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } tinfo->fid = fid; tinfo->fset = NULL; @@ -465,7 +465,7 @@ static int32_t tsdbCommitInfoAdd(STsdb *tsdb, int32_t fid) { TAOS_CHECK_GOTO(vHashPut(tsdb->commitInfo->ht, tinfo), &lino, _exit); if ((taosArrayPush(tsdb->commitInfo->arr, &tinfo)) == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } taosArraySort(tsdb->commitInfo->arr, tFileSetCommitInfoPCompare); diff --git a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c index e965221920..5a2f9628fb 100644 --- a/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c +++ b/source/dnode/vnode/src/tsdb/tsdbDataFileRW.c @@ -183,7 +183,7 @@ int32_t tsdbDataFileReadBrinBlk(SDataFileReader *reader, const TBrinBlkArray **b if (reader->headFooter->brinBlkPtr->size > 0) { data = taosMemoryMalloc(reader->headFooter->brinBlkPtr->size); if (data == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } int32_t encryptAlgorithm = reader->config->tsdb->pVnode->config.tsdbCfg.encryptAlgorithm; @@ -557,7 +557,7 @@ int32_t tsdbDataFileReadTombBlk(SDataFileReader *reader, const TTombBlkArray **t if (reader->tombFooter->tombBlkPtr->size > 0) { if ((data = taosMemoryMalloc(reader->tombFooter->tombBlkPtr->size)) == NULL) { - TAOS_CHECK_GOTO(TSDB_CODE_OUT_OF_MEMORY, &lino, _exit); + TAOS_CHECK_GOTO(terrno, &lino, _exit); } int32_t encryptAlgorithm = reader->config->tsdb->pVnode->config.tsdbCfg.encryptAlgorithm; diff --git a/source/dnode/vnode/src/tsdb/tsdbFS.c b/source/dnode/vnode/src/tsdb/tsdbFS.c index d9b2112dbb..19e1f42726 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS.c +++ b/source/dnode/vnode/src/tsdb/tsdbFS.c @@ -72,13 +72,13 @@ static int32_t tsdbBinaryToFS(uint8_t *pData, int64_t nData, STsdbFS *pFS) { int32_t nt = tGetDFileSet(pData + n, &fSet); if (nt < 0) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } n += nt; if (taosArrayPush(pFS->aDFileSet, &fSet) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } } @@ -102,7 +102,7 @@ static int32_t tsdbSaveFSToFile(STsdbFS *pFS, const char *fname) { int32_t size = tsdbFSToBinary(NULL, pFS) + sizeof(TSCKSUM); pData = taosMemoryMalloc(size); if (pData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } int32_t tsize = tsdbFSToBinary(pData, pFS); @@ -140,7 +140,7 @@ int32_t tsdbFSCreate(STsdbFS *pFS) { pFS->pDelFile = NULL; pFS->aDFileSet = taosArrayInit(0, sizeof(SDFileSet)); if (pFS->aDFileSet == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; goto _exit; } @@ -306,7 +306,7 @@ static int32_t load_fs(const char *fname, STsdbFS *pFS) { pData = taosMemoryMalloc(size); if (pData == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; (void)taosCloseFile(&pFD); TSDB_CHECK_CODE(code, lino, _exit); } @@ -386,7 +386,7 @@ static int32_t tsdbNewFileSet(STsdb *pTsdb, SDFileSet *pSetTo, SDFileSet *pSetFr // head pSetTo->pHeadF = (SHeadFile *)taosMemoryMalloc(sizeof(SHeadFile)); if (pSetTo->pHeadF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetTo->pHeadF = *pSetFrom->pHeadF; @@ -395,7 +395,7 @@ static int32_t tsdbNewFileSet(STsdb *pTsdb, SDFileSet *pSetTo, SDFileSet *pSetFr // data pSetTo->pDataF = (SDataFile *)taosMemoryMalloc(sizeof(SDataFile)); if (pSetTo->pDataF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetTo->pDataF = *pSetFrom->pDataF; @@ -404,7 +404,7 @@ static int32_t tsdbNewFileSet(STsdb *pTsdb, SDFileSet *pSetTo, SDFileSet *pSetFr // sma pSetTo->pSmaF = (SSmaFile *)taosMemoryMalloc(sizeof(SSmaFile)); if (pSetTo->pSmaF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetTo->pSmaF = *pSetFrom->pSmaF; @@ -414,7 +414,7 @@ static int32_t tsdbNewFileSet(STsdb *pTsdb, SDFileSet *pSetTo, SDFileSet *pSetFr for (int32_t iStt = 0; iStt < pSetFrom->nSttF; iStt++) { pSetTo->aSttF[iStt] = (SSttFile *)taosMemoryMalloc(sizeof(SSttFile)); if (pSetTo->aSttF[iStt] == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -442,7 +442,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe if ((!sameDisk) || (pHeadF->commitID != pSetNew->pHeadF->commitID)) { pSetOld->pHeadF = (SHeadFile *)taosMemoryMalloc(sizeof(SHeadFile)); if (pSetOld->pHeadF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->pHeadF = *pSetNew->pHeadF; @@ -465,7 +465,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe if ((!sameDisk) || (pDataF->commitID != pSetNew->pDataF->commitID)) { pSetOld->pDataF = (SDataFile *)taosMemoryMalloc(sizeof(SDataFile)); if (pSetOld->pDataF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->pDataF = *pSetNew->pDataF; @@ -486,7 +486,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe if ((!sameDisk) || (pSmaF->commitID != pSetNew->pSmaF->commitID)) { pSetOld->pSmaF = (SSmaFile *)taosMemoryMalloc(sizeof(SSmaFile)); if (pSetOld->pSmaF == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->pSmaF = *pSetNew->pSmaF; @@ -507,7 +507,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe if (pSetNew->nSttF > pSetOld->nSttF) { pSetOld->aSttF[pSetOld->nSttF] = (SSttFile *)taosMemoryMalloc(sizeof(SSttFile)); if (pSetOld->aSttF[pSetOld->nSttF] == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->aSttF[pSetOld->nSttF] = *pSetNew->aSttF[pSetOld->nSttF]; @@ -528,7 +528,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe pSetOld->nSttF = 1; pSetOld->aSttF[0] = (SSttFile *)taosMemoryMalloc(sizeof(SSttFile)); if (pSetOld->aSttF[0] == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->aSttF[0] = *pSetNew->aSttF[0]; @@ -546,7 +546,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe pSetOld->aSttF[iStt] = (SSttFile *)taosMemoryMalloc(sizeof(SSttFile)); if (pSetOld->aSttF[iStt] == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } *pSetOld->aSttF[iStt] = *pSetNew->aSttF[iStt]; @@ -574,7 +574,7 @@ static int32_t tsdbMergeFileSet(STsdb *pTsdb, SDFileSet *pSetOld, SDFileSet *pSe for (int32_t iStt = 0; iStt < pSetNew->nSttF; iStt++) { pSetOld->aSttF[iStt] = (SSttFile *)taosMemoryMalloc(sizeof(SSttFile)); if (pSetOld->aSttF[iStt] == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -610,7 +610,7 @@ static int32_t tsdbFSApplyChange(STsdb *pTsdb, STsdbFS *pFS) { if (pDelFile == NULL || (pDelFile->commitID != pFS->pDelFile->commitID)) { pTsdb->fs.pDelFile = (SDelFile *)taosMemoryMalloc(sizeof(SDelFile)); if (pTsdb->fs.pDelFile == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -668,7 +668,7 @@ static int32_t tsdbFSApplyChange(STsdb *pTsdb, STsdbFS *pFS) { TSDB_CHECK_CODE(code, lino, _exit); if (taosArrayInsert(pTsdb->fs.aDFileSet, iOld, &fSet) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -684,7 +684,7 @@ static int32_t tsdbFSApplyChange(STsdb *pTsdb, STsdbFS *pFS) { TSDB_CHECK_CODE(code, lino, _exit); if (taosArrayInsert(pTsdb->fs.aDFileSet, iOld, &fSet) == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } diff --git a/source/dnode/vnode/src/tsdb/tsdbFS2.c b/source/dnode/vnode/src/tsdb/tsdbFS2.c index 0db580dfe0..bcaa70f9a8 100644 --- a/source/dnode/vnode/src/tsdb/tsdbFS2.c +++ b/source/dnode/vnode/src/tsdb/tsdbFS2.c @@ -122,7 +122,7 @@ static int32_t load_json(const char *fname, cJSON **json) { data = taosMemoryMalloc(size + 1); if (data == NULL) { - TSDB_CHECK_CODE(code = TSDB_CODE_OUT_OF_MEMORY, lino, _exit); + TSDB_CHECK_CODE(code = terrno, lino, _exit); } if (taosReadFile(fp, data, size) < 0) { @@ -387,7 +387,7 @@ static void tsdbFSDestroyFileObjHash(STFileHash *hash); static int32_t tsdbFSAddEntryToFileObjHash(STFileHash *hash, const char *fname) { STFileHashEntry *entry = taosMemoryMalloc(sizeof(*entry)); - if (entry == NULL) return TSDB_CODE_OUT_OF_MEMORY; + if (entry == NULL) return terrno; strncpy(entry->fname, fname, TSDB_FILENAME_LEN); @@ -752,7 +752,7 @@ int32_t tsdbDisableAndCancelAllBgTask(STsdb *pTsdb) { STFileSystem *fs = pTsdb->pFS; SArray *channelArray = taosArrayInit(0, sizeof(SVAChannelID)); if (channelArray == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } (void)taosThreadMutexLock(&pTsdb->mutex); @@ -913,7 +913,7 @@ int32_t tsdbFSEditCommit(STFileSystem *fs) { SMergeArg *arg = taosMemoryMalloc(sizeof(*arg)); if (arg == NULL) { - code = TSDB_CODE_OUT_OF_MEMORY; + code = terrno; TSDB_CHECK_CODE(code, lino, _exit); } @@ -962,7 +962,7 @@ int32_t tsdbFSCreateCopySnapshot(STFileSystem *fs, TFileSetArray **fsetArr) { STFileSet *fset1; fsetArr[0] = taosMemoryMalloc(sizeof(TFileSetArray)); - if (fsetArr[0] == NULL) return TSDB_CODE_OUT_OF_MEMORY; + if (fsetArr[0] == NULL) return terrno; TARRAY2_INIT(fsetArr[0]); @@ -1058,7 +1058,7 @@ int32_t tsdbFSCreateCopyRangedSnapshot(STFileSystem *fs, TFileSetRangeArray *pRa SHashObj *pHash = NULL; fsetArr[0] = taosMemoryMalloc(sizeof(TFileSetArray)); - if (fsetArr == NULL) return TSDB_CODE_OUT_OF_MEMORY; + if (fsetArr == NULL) return terrno; TARRAY2_INIT(fsetArr[0]); if (pRanges) { diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 991c7863ac..1fc67ec66f 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -388,7 +388,7 @@ int32_t resetDataBlockIterator(SDataBlockIter* pIter, int32_t order, bool needFr if (pIter->blockList == NULL) { pIter->blockList = taosArrayInit(4, sizeof(SFileDataBlockInfo)); if (pIter->blockList == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } else { clearDataBlockIterator(pIter, needFree); @@ -691,7 +691,7 @@ static int32_t doLoadBlockIndex(STsdbReader* pReader, SDataFileReader* pFileRead void* p1 = taosArrayPush(pIndexList, pBrinBlk); if (p1 == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } i += 1; @@ -815,7 +815,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S pScanInfo->pBlockList = taosArrayInit(4, sizeof(SFileDataBlockInfo)); if (pScanInfo->pBlockList == NULL) { clearBrinBlockIter(&iter); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -823,7 +823,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S pScanInfo->pBlockIdxList = taosArrayInit(4, sizeof(STableDataBlockIdx)); if (pScanInfo->pBlockIdxList == NULL) { clearBrinBlockIter(&iter); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -836,7 +836,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S void* p1 = taosArrayPush(pScanInfo->pBlockList, &blockInfo); if (p1 == NULL) { clearBrinBlockIter(&iter); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } // todo: refactor to record the fileset skey/ekey @@ -865,7 +865,7 @@ static int32_t loadFileBlockBrinInfo(STsdbReader* pReader, SArray* pIndexList, S if (p1 == NULL) { clearBrinBlockIter(&iter); - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -2908,7 +2908,7 @@ int32_t initDelSkylineIterator(STableBlockScanInfo* pBlockScanInfo, int32_t orde } else { pBlockScanInfo->delSkyline = taosArrayInit(4, sizeof(TSDBKEY)); if (pBlockScanInfo->delSkyline == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } @@ -3021,7 +3021,7 @@ static int32_t moveToNextFile(STsdbReader* pReader, SBlockNumber* pBlockNum, SAr size_t numOfTables = tSimpleHashGetSize(pReader->status.pTableMap); SArray* pIndexList = taosArrayInit(numOfTables, sizeof(SBrinBlk)); if (pIndexList == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } while (1) { @@ -3541,7 +3541,7 @@ static int32_t initForFirstBlockInFile(STsdbReader* pReader, SDataBlockIter* pBl SBlockNumber num = {0}; SArray* pTableList = taosArrayInit(40, POINTER_BYTES); if (pTableList == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } int32_t code = moveToNextFile(pReader, &num, pTableList); @@ -4935,7 +4935,7 @@ static int32_t doSuspendCurrentReader(STsdbReader* pCurrentReader) { destroySttBlockReader(pStatus->pLDataIterArray, &pCost->sttCost); pStatus->pLDataIterArray = taosArrayInit(4, POINTER_BYTES); if (pStatus->pLDataIterArray == NULL) { - return TSDB_CODE_OUT_OF_MEMORY; + return terrno; } } diff --git a/source/libs/nodes/src/nodesCloneFuncs.c b/source/libs/nodes/src/nodesCloneFuncs.c index b76e4448d3..d9b72b36b7 100644 --- a/source/libs/nodes/src/nodesCloneFuncs.c +++ b/source/libs/nodes/src/nodesCloneFuncs.c @@ -268,6 +268,7 @@ static SArray* functParamClone(const SArray* pSrc) { if (NULL == pDst) { return NULL; } + int32_t code = 0; for (int i = 0; i < TARRAY_SIZE(pSrc); ++i) { SFunctParam* pFunctParam = taosArrayGet(pSrc, i); SFunctParam* pNewFunctParam = (SFunctParam*)taosArrayPush(pDst, pFunctParam); @@ -277,8 +278,16 @@ static SArray* functParamClone(const SArray* pSrc) { } pNewFunctParam->type = pFunctParam->type; pNewFunctParam->pCol = taosMemoryCalloc(1, sizeof(SColumn)); + if (!pNewFunctParam->pCol) { + code = terrno; + break; + } memcpy(pNewFunctParam->pCol, pFunctParam->pCol, sizeof(SColumn)); } + if (TSDB_CODE_SUCCESS != code) { + taosArrayDestroyEx(pDst, destroyFuncParam); + return NULL; + } return pDst; } diff --git a/source/libs/nodes/src/nodesCodeFuncs.c b/source/libs/nodes/src/nodesCodeFuncs.c index 74879a53af..99d7c4e265 100644 --- a/source/libs/nodes/src/nodesCodeFuncs.c +++ b/source/libs/nodes/src/nodesCodeFuncs.c @@ -3954,6 +3954,7 @@ static int32_t datumToJson(const void* pObj, SJson* pJson) { case TSDB_DATA_TYPE_NCHAR: { // cJSON only support utf-8 encoding. Convert memory content to hex string. char* buf = taosMemoryCalloc(varDataLen(pNode->datum.p) * 2 + 1, sizeof(char)); + if (!buf) return terrno; code = taosHexEncode(varDataVal(pNode->datum.p), buf, varDataLen(pNode->datum.p)); if (code != TSDB_CODE_SUCCESS) { taosMemoryFree(buf); @@ -3971,6 +3972,7 @@ static int32_t datumToJson(const void* pObj, SJson* pJson) { case TSDB_DATA_TYPE_JSON: { int32_t len = getJsonValueLen(pNode->datum.p); char* buf = taosMemoryCalloc(len * 2 + 1, sizeof(char)); + if (!buf) return terrno; code = taosHexEncode(pNode->datum.p, buf, len); if (code != TSDB_CODE_SUCCESS) { taosMemoryFree(buf); diff --git a/source/libs/nodes/src/nodesUtilFuncs.c b/source/libs/nodes/src/nodesUtilFuncs.c index 9f831c05e9..22acf4df45 100644 --- a/source/libs/nodes/src/nodesUtilFuncs.c +++ b/source/libs/nodes/src/nodesUtilFuncs.c @@ -824,7 +824,7 @@ static void destroyTableCfg(STableCfg* pCfg) { static void destroySmaIndex(void* pIndex) { taosMemoryFree(((STableIndexInfo*)pIndex)->expr); } -static void destroyFuncParam(void* pValue) { taosMemoryFree(((SFunctParam*)pValue)->pCol); } +void destroyFuncParam(void* pValue) { taosMemoryFree(((SFunctParam*)pValue)->pCol); } static void destroyHintValue(EHintOption option, void* value) { switch (option) { diff --git a/source/libs/parser/inc/parInsertUtil.h b/source/libs/parser/inc/parInsertUtil.h index df9f698dc1..c5cce55d9a 100644 --- a/source/libs/parser/inc/parInsertUtil.h +++ b/source/libs/parser/inc/parInsertUtil.h @@ -42,7 +42,7 @@ typedef struct SVgroupDataCxt { int32_t insCreateSName(SName *pName, struct SToken *pTableName, int32_t acctId, const char *dbName, SMsgBuf *pMsgBuf); int16_t insFindCol(struct SToken *pColname, int16_t start, int16_t end, SSchema *pSchema); -void insBuildCreateTbReq(SVCreateTbReq *pTbReq, const char *tname, STag *pTag, int64_t suid, const char *sname, +int32_t insBuildCreateTbReq(SVCreateTbReq *pTbReq, const char *tname, STag *pTag, int64_t suid, const char *sname, SArray *tagName, uint8_t tagNum, int32_t ttl); int32_t insInitBoundColsInfo(int32_t numOfBound, SBoundColInfo *pInfo); void insResetBoundColsInfo(SBoundColInfo *pInfo); diff --git a/source/libs/parser/src/parAstCreater.c b/source/libs/parser/src/parAstCreater.c index fa6a3648e0..77d50ffd91 100644 --- a/source/libs/parser/src/parAstCreater.c +++ b/source/libs/parser/src/parAstCreater.c @@ -580,6 +580,7 @@ SNodeList* createHintNodeList(SAstCreateContext* pCxt, const SToken* pLiteral) { } SNodeList* pHintList = NULL; char* hint = strndup(pLiteral->z + 3, pLiteral->n - 5); + if (!hint) return NULL; int32_t i = 0; bool quit = false; bool inParamList = false; @@ -2775,6 +2776,7 @@ _err: static int32_t getIpV4RangeFromWhitelistItem(char* ipRange, SIpV4Range* pIpRange) { int32_t code = TSDB_CODE_SUCCESS; char* ipCopy = taosStrdup(ipRange); + if (!ipCopy) return terrno; char* slash = strchr(ipCopy, '/'); if (slash) { *slash = '\0'; diff --git a/source/libs/parser/src/parInsertSml.c b/source/libs/parser/src/parInsertSml.c index 929ec01f6a..6bfab0c9ce 100644 --- a/source/libs/parser/src/parInsertSml.c +++ b/source/libs/parser/src/parInsertSml.c @@ -274,6 +274,11 @@ int32_t smlBuildCol(STableDataCxt* pTableCxt, SSchema* schema, void* data, int32 } else if (kv->type == TSDB_DATA_TYPE_GEOMETRY || kv->type == TSDB_DATA_TYPE_VARBINARY) { pVal->value.nData = kv->length; pVal->value.pData = taosMemoryMalloc(kv->length); + if (!pVal->value.pData) { + ret = terrno; + uError("SML smlBuildCol malloc failed %s:%d, err: %s", __func__, __LINE__, tstrerror(ret)); + goto end; + } (void)memcpy(pVal->value.pData, (uint8_t*)kv->value, kv->length); } else { (void)memcpy(&pVal->value.val, &(kv->value), kv->length); @@ -318,8 +323,11 @@ int32_t smlBindData(SQuery* query, bool dataFormat, SArray* tags, SArray* colsSc ret = terrno; goto end; } - insBuildCreateTbReq(pCreateTblReq, tableName, pTag, pTableMeta->suid, NULL, tagName, pTableMeta->tableInfo.numOfTags, - ttl); + ret = insBuildCreateTbReq(pCreateTblReq, tableName, pTag, pTableMeta->suid, NULL, tagName, + pTableMeta->tableInfo.numOfTags, ttl); + if (TSDB_CODE_SUCCESS != ret) { + goto end; + } pCreateTblReq->ctb.stbName = taosMemoryCalloc(1, sTableNameLen + 1); if (pCreateTblReq->ctb.stbName == NULL){ diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index d15d305c95..a7e842f486 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -465,6 +465,7 @@ static int32_t parseVarbinary(SToken* pToken, uint8_t** pData, uint32_t* nData, *nData = size; } else { *pData = taosMemoryCalloc(1, pToken->n); + if (!pData) return terrno; int32_t len = trimString(pToken->z, pToken->n, *pData, pToken->n); *nData = len; @@ -639,6 +640,9 @@ static int32_t parseTagToken(const char** end, SToken* pToken, SSchema* pSchema, return generateSyntaxErrMsg(pMsgBuf, TSDB_CODE_PAR_VALUE_TOO_LONG, pSchema->name); } val->pData = taosStrdup(pToken->z); + if (!val->pData) { + return terrno; + } val->nData = pToken->n; break; } @@ -770,10 +774,9 @@ static int32_t buildCreateTbReq(SVnodeModifyOpStmt* pStmt, STag* pTag, SArray* p if (NULL == pStmt->pCreateTblReq) { return terrno; } - insBuildCreateTbReq(pStmt->pCreateTblReq, pStmt->targetTableName.tname, pTag, pStmt->pTableMeta->suid, + return insBuildCreateTbReq(pStmt->pCreateTblReq, pStmt->targetTableName.tname, pTag, pStmt->pTableMeta->suid, pStmt->usingTableName.tname, pTagName, pStmt->pTableMeta->tableInfo.numOfTags, TSDB_DEFAULT_TABLE_TTL); - return TSDB_CODE_SUCCESS; } int32_t checkAndTrimValue(SToken* pToken, char* tmpTokenBuf, SMsgBuf* pMsgBuf, int8_t type) { @@ -1919,7 +1922,7 @@ static int32_t processCtbAutoCreationAndCtbMeta(SInsertParseContext* pCxt, SVnod code = terrno; } if (code == TSDB_CODE_SUCCESS) { - insBuildCreateTbReq(pStbRowsCxt->pCreateCtbReq, pStbRowsCxt->ctbName.tname, pStbRowsCxt->pTag, + code = insBuildCreateTbReq(pStbRowsCxt->pCreateCtbReq, pStbRowsCxt->ctbName.tname, pStbRowsCxt->pTag, pStbRowsCxt->pStbMeta->uid, pStbRowsCxt->stbName.tname, pStbRowsCxt->aTagNames, getNumOfTags(pStbRowsCxt->pStbMeta), TSDB_DEFAULT_TABLE_TTL); pStbRowsCxt->pTag = NULL; diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 7d68e80df9..ec4a6ee0e7 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -237,7 +237,7 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const ch } } - insBuildCreateTbReq(pDataBlock->pData->pCreateTbReq, tName, pTag, suid, sTableName, tagName, + code = insBuildCreateTbReq(pDataBlock->pData->pCreateTbReq, tName, pTag, suid, sTableName, tagName, pDataBlock->pMeta->tableInfo.numOfTags, TSDB_DEFAULT_TABLE_TTL); pTag = NULL; @@ -585,7 +585,7 @@ int32_t qBindStmtTagsValue2(void* pBlock, void* boundTags, int64_t suid, const c } } - insBuildCreateTbReq(pDataBlock->pData->pCreateTbReq, tName, pTag, suid, sTableName, tagName, + code = insBuildCreateTbReq(pDataBlock->pData->pCreateTbReq, tName, pTag, suid, sTableName, tagName, pDataBlock->pMeta->tableInfo.numOfTags, TSDB_DEFAULT_TABLE_TTL); pTag = NULL; diff --git a/source/libs/parser/src/parInsertUtil.c b/source/libs/parser/src/parInsertUtil.c index e77678fb69..b3bfa3982c 100644 --- a/source/libs/parser/src/parInsertUtil.c +++ b/source/libs/parser/src/parInsertUtil.c @@ -146,19 +146,24 @@ int16_t insFindCol(SToken* pColname, int16_t start, int16_t end, SSchema* pSchem return -1; } -void insBuildCreateTbReq(SVCreateTbReq* pTbReq, const char* tname, STag* pTag, int64_t suid, const char* sname, +int32_t insBuildCreateTbReq(SVCreateTbReq* pTbReq, const char* tname, STag* pTag, int64_t suid, const char* sname, SArray* tagName, uint8_t tagNum, int32_t ttl) { pTbReq->type = TD_CHILD_TABLE; + pTbReq->ctb.pTag = (uint8_t*)pTag; pTbReq->name = taosStrdup(tname); + if (!pTbReq->name) return terrno; pTbReq->ctb.suid = suid; pTbReq->ctb.tagNum = tagNum; - if (sname) pTbReq->ctb.stbName = taosStrdup(sname); - pTbReq->ctb.pTag = (uint8_t*)pTag; + if (sname) { + pTbReq->ctb.stbName = taosStrdup(sname); + if (!pTbReq->ctb.stbName) return terrno; + } pTbReq->ctb.tagName = taosArrayDup(tagName, NULL); + if (!pTbReq->ctb.tagName) return terrno; pTbReq->ttl = ttl; pTbReq->commentLen = -1; - return; + return TSDB_CODE_SUCCESS; } static void initBoundCols(int32_t ncols, int16_t* pBoundCols) { diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 22d0fe846e..473b4f4b1a 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -2733,6 +2733,9 @@ static int32_t rewriteServerStatusFunc(STranslateContext* pCxt, SNode** pNode) { return TSDB_CODE_RPC_NETWORK_UNAVAIL; } char* pStatus = taosStrdup((void*)"1"); + if (!pStatus) { + return terrno; + } int32_t code = rewriteFuncToValue(pCxt, &pStatus, pNode); if (TSDB_CODE_SUCCESS != code) taosMemoryFree(pStatus); return code; @@ -4122,12 +4125,18 @@ static EDealRes doTranslateTbName(SNode** pNode, void* pContext) { pVal->literal = taosStrdup(pCxt->pTbName); if (NULL == pVal->literal) { pCxt->errCode = TSDB_CODE_OUT_OF_MEMORY; + nodesDestroyNode((SNode*)pVal); return DEAL_RES_ERROR; } pVal->translate = true; pVal->node.resType.type = TSDB_DATA_TYPE_BINARY; pVal->node.resType.bytes = tbLen + VARSTR_HEADER_SIZE; pVal->datum.p = taosMemoryCalloc(1, tbLen + VARSTR_HEADER_SIZE + 1); + if (!pVal->datum.p) { + pCxt->errCode = terrno; + nodesDestroyNode((SNode*)pVal); + return DEAL_RES_ERROR; + } varDataSetLen(pVal->datum.p, tbLen); strncpy(varDataVal(pVal->datum.p), pVal->literal, tbLen); strcpy(pVal->node.userAlias, pFunc->node.userAlias); @@ -5832,6 +5841,11 @@ static int32_t createDefaultEveryNode(STranslateContext* pCxt, SNode** pOutput) pEvery->node.resType.bytes = tDataTypes[TSDB_DATA_TYPE_BIGINT].bytes; pEvery->flag |= VALUE_FLAG_IS_DURATION; pEvery->literal = taosStrdup("1s"); + if (!pEvery->literal) { + code = terrno; + nodesDestroyNode((SNode*)pEvery); + return code; + } *pOutput = (SNode*)pEvery; return TSDB_CODE_SUCCESS; @@ -6333,6 +6347,10 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* nTbls = taosArrayGetSize(pInfo->aTbnames); SVgroupsInfo* vgsInfo = taosMemoryMalloc(sizeof(SVgroupsInfo) + nTbls * sizeof(SVgroupInfo)); + if (!vgsInfo) { + code = terrno; + break; + } findVgroupsFromEqualTbname(pCxt, pInfo->aTbnames, pInfo->pRealTable->table.dbName, numOfVgs, vgsInfo); if (vgsInfo->numOfVgroups != 0) { taosMemoryFree(pInfo->pRealTable->pVgroupList); @@ -6360,6 +6378,7 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* break; } if (NULL == taosArrayPush(pTbNames, &pNewTbName)) { + taosMemoryFreeClear(pNewTbName); code = terrno; break; } @@ -6374,15 +6393,19 @@ static int32_t setEqualTbnameTableVgroups(STranslateContext* pCxt, SSelectStmt* findVgroupsFromEqualTbname(pCxt, pTbNames, pInfo->pRealTable->table.dbName, numOfVgs, vgsInfo); if (vgsInfo->numOfVgroups != 0) { if (NULL == taosArrayPush(pInfo->pRealTable->tsmaTargetTbVgInfo, &vgsInfo)) { + taosMemoryFreeClear(vgsInfo); code = terrno; } } else { - taosMemoryFree(vgsInfo); + taosMemoryFreeClear(vgsInfo); } } taosArrayDestroyP(pTbNames, taosMemoryFree); if (code) break; } + if (TSDB_CODE_SUCCESS != code) { + break; + } } } @@ -9216,6 +9239,9 @@ static int32_t translateCreateUser(STranslateContext* pCxt, SCreateUserStmt* pSt createReq.numIpRanges = pStmt->numIpRanges; if (pStmt->numIpRanges > 0) { createReq.pIpRanges = taosMemoryMalloc(createReq.numIpRanges * sizeof(SIpV4Range)); + if (!createReq.pIpRanges) { + return terrno; + } memcpy(createReq.pIpRanges, pStmt->pIpRanges, sizeof(SIpV4Range) * createReq.numIpRanges); } code = buildCmdMsg(pCxt, TDMT_MND_CREATE_USER, (FSerializeFunc)tSerializeSCreateUserReq, &createReq); @@ -9259,6 +9285,9 @@ static int32_t translateAlterUser(STranslateContext* pCxt, SAlterUserStmt* pStmt alterReq.numIpRanges = pStmt->numIpRanges; if (pStmt->numIpRanges > 0) { alterReq.pIpRanges = taosMemoryMalloc(alterReq.numIpRanges * sizeof(SIpV4Range)); + if (!alterReq.pIpRanges) { + return terrno; + } memcpy(alterReq.pIpRanges, pStmt->pIpRanges, sizeof(SIpV4Range) * alterReq.numIpRanges); } code = buildCmdMsg(pCxt, TDMT_MND_ALTER_USER, (FSerializeFunc)tSerializeSAlterUserReq, &alterReq); @@ -13282,6 +13311,10 @@ static int32_t buildNormalTableBatchReq(int32_t acctId, const SCreateTableStmt* SVCreateTbReq req = {0}; req.type = TD_NORMAL_TABLE; req.name = taosStrdup(pStmt->tableName); + if (!req.name) { + tdDestroySVCreateTbReq(&req); + return terrno; + } req.ttl = pStmt->pOptions->ttl; if (pStmt->pOptions->commentNull == false) { req.comment = taosStrdup(pStmt->pOptions->comment); @@ -14001,6 +14034,7 @@ static int32_t constructParseFileContext(SCreateSubTableFromFileClause* pStmt, S int32_t code = TSDB_CODE_SUCCESS; SParseFileContext* pParFileCxt = taosMemoryCalloc(1, sizeof(SParseFileContext)); + if (!pParFileCxt) return terrno; pParFileCxt->pStbMeta = pSuperTableMeta; pParFileCxt->tagNameFilled = false; pParFileCxt->pTag = NULL; @@ -14265,6 +14299,9 @@ int32_t continueCreateTbFromFile(SParseContext* pParseCxt, SQuery** pQuery) { SMsgBuf tmpBuf = {0}; tmpBuf.buf = taosMemoryMalloc(1024); + if (!tmpBuf.buf) { + return terrno; + } int32_t code = createSubTableFromFile(&tmpBuf, pParseCxt, pModifyStmt); if (TSDB_CODE_SUCCESS != code) goto _OUT; diff --git a/source/libs/parser/src/parUtil.c b/source/libs/parser/src/parUtil.c index 94bd53ea68..d17b8ac6c2 100644 --- a/source/libs/parser/src/parUtil.c +++ b/source/libs/parser/src/parUtil.c @@ -1294,35 +1294,56 @@ int32_t getTsmaFromCache(SParseMetaCache* pMetaCache, const SName* pTsmaName, ST STableCfg* tableCfgDup(STableCfg* pCfg) { STableCfg* pNew = taosMemoryMalloc(sizeof(*pNew)); - + if (!pNew) { + return NULL; + } memcpy(pNew, pCfg, sizeof(*pNew)); - if (NULL != pNew->pComment) { + pNew->pComment = NULL; + pNew->pFuncs = NULL; + pNew->pTags = NULL; + pNew->pSchemas = NULL; + pNew->pSchemaExt = NULL; + if (NULL != pCfg->pComment) { pNew->pComment = taosMemoryCalloc(pNew->commentLen + 1, 1); + if (!pNew->pComment) goto err; memcpy(pNew->pComment, pCfg->pComment, pNew->commentLen); } - if (NULL != pNew->pFuncs) { - pNew->pFuncs = taosArrayDup(pNew->pFuncs, NULL); + if (NULL != pCfg->pFuncs) { + pNew->pFuncs = taosArrayDup(pCfg->pFuncs, NULL); + if (!pNew->pFuncs) goto err; } - if (NULL != pNew->pTags) { - pNew->pTags = taosMemoryCalloc(pNew->tagsLen + 1, 1); + if (NULL != pCfg->pTags) { + pNew->pTags = taosMemoryCalloc(pCfg->tagsLen + 1, 1); + if (!pNew->pTags) goto err; memcpy(pNew->pTags, pCfg->pTags, pNew->tagsLen); } int32_t schemaSize = (pCfg->numOfColumns + pCfg->numOfTags) * sizeof(SSchema); SSchema* pSchema = taosMemoryMalloc(schemaSize); + if (!pSchema) goto err; memcpy(pSchema, pCfg->pSchemas, schemaSize); + pNew->pSchemas = pSchema; + SSchemaExt* pSchemaExt = NULL; if (useCompress(pCfg->tableType) && pCfg->pSchemaExt) { int32_t schemaExtSize = pCfg->numOfColumns * sizeof(SSchemaExt); pSchemaExt = taosMemoryMalloc(schemaExtSize); + if (!pSchemaExt) goto err; memcpy(pSchemaExt, pCfg->pSchemaExt, schemaExtSize); } - pNew->pSchemas = pSchema; pNew->pSchemaExt = pSchemaExt; return pNew; +err: + if (pNew->pComment) taosMemoryFreeClear(pNew->pComment); + if (pNew->pFuncs) taosArrayDestroy(pNew->pFuncs); + if (pNew->pTags) taosMemoryFreeClear(pNew->pTags); + if (pNew->pSchemas) taosMemoryFreeClear(pNew->pSchemas); + if (pNew->pSchemaExt) taosMemoryFreeClear(pNew->pSchemaExt); + taosMemoryFreeClear(pNew); + return NULL; } int32_t getTableCfgFromCache(SParseMetaCache* pMetaCache, const SName* pName, STableCfg** pOutput) {