From c1732ba41d11e6823cee588d57aa730e07814b1c Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Thu, 9 Jan 2025 13:36:23 +0800 Subject: [PATCH] Fix asan problems at ci test. --- source/dnode/mnode/impl/inc/mndDef.h | 12 +++++------ source/dnode/mnode/impl/src/mndConfig.c | 28 +++++++++++-------------- source/dnode/mnode/impl/src/mndDef.c | 23 +++++++++----------- tests/parallel_test/cases.task | 2 +- 4 files changed, 29 insertions(+), 36 deletions(-) diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index e3d2ad6d34..90f1bd9b8e 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -328,12 +328,12 @@ typedef struct { }; } SConfigObj; -int32_t tEncodeSConfigObj(SEncoder* pEncoder, const SConfigObj* pObj); -int32_t tDecodeSConfigObj(SDecoder* pDecoder, SConfigObj* pObj); -SConfigObj* mndInitConfigObj(SConfigItem* pItem); -SConfigObj* mndInitConfigVersion(); -int32_t mndUpdateObj(SConfigObj* pObj, const char* name, char* value); -void tFreeSConfigObj(SConfigObj* obj); +int32_t tEncodeSConfigObj(SEncoder* pEncoder, const SConfigObj* pObj); +int32_t tDecodeSConfigObj(SDecoder* pDecoder, SConfigObj* pObj); +int32_t mndInitConfigObj(SConfigItem* pItem, SConfigObj* pObj); +SConfigObj mndInitConfigVersion(); +int32_t mndUpdateObj(SConfigObj* pObj, const char* name, char* value); +void tFreeSConfigObj(SConfigObj* obj); typedef struct { int32_t maxUsers; diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 2c59840c86..e388d7ca75 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -308,28 +308,27 @@ int32_t mndInitWriteCfg(SMnode *pMnode) { } // encode mnd config version - SConfigObj *versionObj = mndInitConfigVersion(); - if ((code = mndSetCreateConfigCommitLogs(pTrans, versionObj)) != 0) { + SConfigObj versionObj = mndInitConfigVersion(); + if ((code = mndSetCreateConfigCommitLogs(pTrans, &versionObj)) != 0) { mError("failed to init mnd config version, since %s", tstrerror(code)); - tFreeSConfigObj(versionObj); + tFreeSConfigObj(&versionObj); goto _OVER; } - tFreeSConfigObj(versionObj); + tFreeSConfigObj(&versionObj); sz = taosArrayGetSize(taosGetGlobalCfg(tsCfg)); for (int i = 0; i < sz; ++i) { SConfigItem *item = taosArrayGet(taosGetGlobalCfg(tsCfg), i); - SConfigObj *pObj = mndInitConfigObj(item); - if (pObj == NULL) { - code = terrno; + SConfigObj pObj; + if ((code = mndInitConfigObj(item, &pObj)) != 0) { goto _OVER; } - if ((code = mndSetCreateConfigCommitLogs(pTrans, pObj)) != 0) { + if ((code = mndSetCreateConfigCommitLogs(pTrans, &pObj)) != 0) { mError("failed to init mnd config:%s, since %s", item->name, tstrerror(code)); - tFreeSConfigObj(pObj); + tFreeSConfigObj(&pObj); goto _OVER; } - tFreeSConfigObj(pObj); + tFreeSConfigObj(&pObj); } if ((code = mndTransPrepare(pMnode, pTrans)) != 0) goto _OVER; @@ -386,12 +385,9 @@ static int32_t mndTryRebuildConfigSdb(SRpcMsg *pReq) { SConfigObj *obj = sdbAcquire(pMnode->pSdb, SDB_CFG, item->name); if (obj == NULL) { mInfo("config:%s, not exist in sdb, try to add it", item->name); - SConfigObj *newObj = mndInitConfigObj(item); - if (newObj == NULL) { - code = terrno; - goto _exit; - } - if (NULL == taosArrayPush(addArray, newObj)) { + SConfigObj newObj; + if ((code = mndInitConfigObj(item, &newObj)) != 0) goto _exit; + if (NULL == taosArrayPush(addArray, &newObj)) { code = terrno; goto _exit; } diff --git a/source/dnode/mnode/impl/src/mndDef.c b/source/dnode/mnode/impl/src/mndDef.c index f58c377d3b..a6602b392b 100644 --- a/source/dnode/mnode/impl/src/mndDef.c +++ b/source/dnode/mnode/impl/src/mndDef.c @@ -730,10 +730,7 @@ void *tDecodeSubscribeObj(const void *buf, SMqSubscribeObj *pSub, int8_t sver) { return (void *)buf; } -SConfigObj *mndInitConfigObj(SConfigItem *pItem) { - SConfigObj *pObj; - memset(pObj, 0, sizeof(SConfigObj)); - +int32_t mndInitConfigObj(SConfigItem *pItem, SConfigObj *pObj) { tstrncpy(pObj->name, pItem->name, CFG_NAME_MAX_LEN); pObj->dtype = pItem->dtype; switch (pItem->dtype) { @@ -760,11 +757,11 @@ SConfigObj *mndInitConfigObj(SConfigItem *pItem) { pObj->str = taosStrdup(pItem->str); if (pObj->str == NULL) { taosMemoryFree(pObj); - return NULL; + return TSDB_CODE_OUT_OF_MEMORY; } break; } - return pObj; + return TSDB_CODE_SUCCESS; } int32_t mndUpdateObj(SConfigObj *pObjNew, const char *name, char *value) { @@ -821,14 +818,14 @@ int32_t mndUpdateObj(SConfigObj *pObjNew, const char *name, char *value) { return code; } -SConfigObj *mndInitConfigVersion() { - SConfigObj *pObj; - memset(pObj, 0, sizeof(SConfigObj)); +SConfigObj mndInitConfigVersion() { + SConfigObj obj; + memset(&obj, 0, sizeof(SConfigObj)); - tstrncpy(pObj->name, "tsmmConfigVersion", CFG_NAME_MAX_LEN); - pObj->dtype = CFG_DTYPE_INT32; - pObj->i32 = 0; - return pObj; + tstrncpy(obj.name, "tsmmConfigVersion", CFG_NAME_MAX_LEN); + obj.dtype = CFG_DTYPE_INT32; + obj.i32 = 0; + return obj; } int32_t tEncodeSConfigObj(SEncoder *pEncoder, const SConfigObj *pObj) { diff --git a/tests/parallel_test/cases.task b/tests/parallel_test/cases.task index 5fce3821da..ec97336f21 100644 --- a/tests/parallel_test/cases.task +++ b/tests/parallel_test/cases.task @@ -404,7 +404,7 @@ ,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/view/non_marterial_view/test_view.py ,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/test_show_table_distributed.py ,,y,system-test,./pytest.sh python3 ./test.py -f 0-others/test_show_disk_usage.py -,,n,system-test,python3 ./test.py -f 0-others/compatibility.py +,,n,system-test,python3 ./test.py -f 0-others/compatibility.py -N 3 -M 3 ,,n,system-test,python3 ./test.py -f 0-others/tag_index_basic.py ,,n,system-test,python3 ./test.py -f 0-others/udfpy_main.py ,,n,system-test,python3 ./test.py -N 3 -f 0-others/walRetention.py