Fix some review problems.

This commit is contained in:
xiao-77 2024-12-10 10:39:50 +08:00
parent 37d6af96b0
commit 1ced6069ee
3 changed files with 60 additions and 21 deletions

View File

@ -508,7 +508,7 @@ int32_t dmProcessConfigReq(SDnodeMgmt *pMgmt, SRpcMsg *pMsg) {
if (cfgReq.version > 0) {
tsdmConfigVersion = cfgReq.version;
}
return TSDB_CODE_SUCCESS;
return code;
}
int32_t dmProcessCreateEncryptKeyReq(SDnodeMgmt *pMgmt, SRpcMsg *pMsg) {

View File

@ -342,7 +342,7 @@ int32_t dmStartConfigThread(SDnodeMgmt *pMgmt) {
int32_t code = 0;
TdThreadAttr thAttr;
(void)taosThreadAttrInit(&thAttr);
(void)taosThreadAttrSetDetachState(&thAttr, PTHREAD_CREATE_JOINABLE);
(void)taosThreadAttrSetDetachState(&thAttr, PTHREAD_CREATE_DETACHED);
if (taosThreadCreate(&pMgmt->configThread, &thAttr, dmConfigThreadFp, pMgmt) != 0) {
code = TAOS_SYSTEM_ERROR(errno);
dError("failed to create config thread since %s", tstrerror(code));

View File

@ -78,7 +78,7 @@ SSdbRaw *mnCfgActionEncode(SConfigObj *obj) {
int32_t dataPos = 0;
char name[CFG_NAME_MAX_LEN] = {0};
strncpy(name, obj->name, CFG_NAME_MAX_LEN);
tstrncpy(name, obj->name, CFG_NAME_MAX_LEN);
SDB_SET_BINARY(pRaw, dataPos, name, CFG_NAME_MAX_LEN, _OVER)
SDB_SET_INT32(pRaw, dataPos, obj->dtype, _OVER)
switch (obj->dtype) {
@ -274,8 +274,13 @@ static int32_t mndProcessConfigReq(SRpcMsg *pReq) {
goto _OVER;
}
void *pHead = rpcMallocCont(contLen);
if (pHead == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
goto _OVER;
}
contLen = tSerializeSConfigRsp(pHead, contLen, &configRsp);
if (contLen < 0) {
rpcFreeCont(pHead);
code = contLen;
goto _OVER;
}
@ -283,13 +288,16 @@ static int32_t mndProcessConfigReq(SRpcMsg *pReq) {
pReq->info.rsp = pHead;
_OVER:
if (code != 0) {
mError("failed to process config req, since %s", tstrerror(code));
}
cfgArrayCleanUp(array);
mndReleaseDnode(pMnode, pDnode);
return TSDB_CODE_SUCCESS;
}
int32_t mndInitWriteCfg(SMnode *pMnode) {
int code = -1;
int code = 0;
size_t sz = 0;
mInfo("init write cfg to sdb");
@ -313,16 +321,23 @@ int32_t mndInitWriteCfg(SMnode *pMnode) {
for (int i = 0; i < sz; ++i) {
SConfigItem *item = taosArrayGet(taosGetGlobalCfg(tsCfg), i);
SConfigObj *obj = mndInitConfigObj(item);
if (obj == NULL) {
code = terrno;
goto _OVER;
}
if ((code = mndSetCreateConfigCommitLogs(pTrans, obj)) != 0) {
mError("failed to init mnd config:%s, since %s", item->name, terrstr());
mError("failed to init mnd config:%s, since %s", item->name, tstrerror(code));
}
taosMemoryFree(obj);
}
if ((code = mndTransPrepare(pMnode, pTrans)) != 0) goto _OVER;
_OVER:
if (code != 0) {
mError("failed to init write cfg, since %s", tstrerror(code));
}
mndTransDrop(pTrans);
return TSDB_CODE_SUCCESS;
return code;
}
int32_t mndInitReadCfg(SMnode *pMnode) {
@ -386,6 +401,9 @@ int32_t cfgUpdateItem(SConfigItem *pItem, SConfigObj *obj) {
if (obj->str != NULL) {
taosMemoryFree(pItem->str);
pItem->str = taosStrdup(obj->str);
if (pItem->str == NULL) {
TAOS_RETURN(terrno);
}
}
break;
}
@ -408,7 +426,7 @@ static int32_t mndMCfg2DCfg(SMCfgDnodeReq *pMCfgReq, SDCfgDnodeReq *pDCfgReq) {
}
size_t optLen = p - pMCfgReq->config;
(void)strncpy(pDCfgReq->config, pMCfgReq->config, optLen);
tstrncpy(pDCfgReq->config, pMCfgReq->config, optLen);
pDCfgReq->config[optLen] = 0;
if (' ' == pMCfgReq->config[optLen]) {
@ -445,6 +463,8 @@ static int32_t mndSendCfgDnodeReq(SMnode *pMnode, int32_t dnodeId, SDCfgDnodeReq
if (pBuf != NULL) {
if ((bufLen = tSerializeSDCfgDnodeReq(pBuf, bufLen, pDcfgReq)) <= 0) {
sdbCancelFetch(pMnode->pSdb, pIter);
sdbRelease(pMnode->pSdb, pDnode);
code = bufLen;
return code;
}
@ -483,14 +503,17 @@ static int32_t mndProcessConfigDnodeReq(SRpcMsg *pReq) {
SDCfgDnodeReq dcfgReq = {0};
if (strcasecmp(cfgReq.config, "resetlog") == 0) {
(void)strcpy(dcfgReq.config, "resetlog");
tstrncpy(dcfgReq.config, "resetlog", 8);
goto _send_req;
#ifdef TD_ENTERPRISE
} else if (strncasecmp(cfgReq.config, "s3blocksize", 11) == 0) {
int32_t optLen = strlen("s3blocksize");
int32_t flag = -1;
int32_t code = mndMCfgGetValInt32(&cfgReq, optLen, &flag);
if (code < 0) return code;
if (code < 0) {
tFreeSMCfgDnodeReq(&cfgReq);
TAOS_RETURN(code);
}
if (flag > 1024 * 1024 || (flag > -1 && flag < 1024) || flag < -1) {
mError("dnode:%d, failed to config s3blocksize since value:%d. Valid range: -1 or [1024, 1024 * 1024]",
@ -567,11 +590,11 @@ static int32_t mndMCfgGetValInt32(SMCfgDnodeReq *pMCfgReq, int32_t optLen, int32
if (' ' == pMCfgReq->config[optLen]) {
// 'key value'
if (strlen(pMCfgReq->value) != 0) goto _err;
*pOutValue = atoi(pMCfgReq->config + optLen + 1);
*pOutValue = taosStr2int32(pMCfgReq->config + optLen + 1);
} else {
// 'key' 'value'
if (strlen(pMCfgReq->value) == 0) goto _err;
*pOutValue = atoi(pMCfgReq->value);
*pOutValue = taosStr2int32(pMCfgReq->value);
}
TAOS_RETURN(code);
@ -588,15 +611,15 @@ static int32_t mndConfigUpdateTrans(SMnode *pMnode, const char *name, char *pVal
int32_t lino = -1;
SConfigObj pVersion = {0}, pObj = {0};
strncpy(pVersion.name, "tsmmConfigVersion", CFG_NAME_MAX_LEN);
tstrncpy(pVersion.name, "tsmmConfigVersion", CFG_NAME_MAX_LEN);
pVersion.i32 = tsmmConfigVersion;
pVersion.dtype = CFG_DTYPE_INT32;
pObj.dtype = dtype;
strncpy(pObj.name, name, CFG_NAME_MAX_LEN);
tstrncpy(pObj.name, name, CFG_NAME_MAX_LEN);
TAOS_CHECK_GOTO(mndUpdateObj(&pObj, name, pValue), &lino, _OVER);
STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_ROLLBACK, TRN_CONFLICT_ARBGROUP, NULL, "update-config");
STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_ROLLBACK, TRN_CONFLICT_NOTHING, NULL, "update-config");
if (pTrans == NULL) {
if (terrno != 0) code = terrno;
goto _OVER;
@ -615,16 +638,17 @@ _OVER:
}
static int32_t initConfigArrayFromSdb(SMnode *pMnode, SArray *array) {
int32_t code = 0;
SSdb *pSdb = pMnode->pSdb;
void *pIter = NULL;
int32_t code = 0;
SSdb *pSdb = pMnode->pSdb;
void *pIter = NULL;
SConfigObj *obj = NULL;
while (1) {
SConfigObj *obj = NULL;
pIter = sdbFetch(pSdb, SDB_CFG, pIter, (void **)&obj);
if (pIter == NULL) break;
if (obj == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
break;
goto _exit;
}
if (strcasecmp(obj->name, "tsmmConfigVersion") == 0) {
continue;
@ -632,6 +656,10 @@ static int32_t initConfigArrayFromSdb(SMnode *pMnode, SArray *array) {
SConfigItem item = {0};
item.dtype = obj->dtype;
item.name = taosStrdup(obj->name);
if (item.name == NULL) {
code = terrno;
goto _exit;
}
switch (obj->dtype) {
case CFG_DTYPE_NONE:
break;
@ -654,15 +682,25 @@ static int32_t initConfigArrayFromSdb(SMnode *pMnode, SArray *array) {
case CFG_DTYPE_CHARSET:
case CFG_DTYPE_TIMEZONE:
item.str = taosStrdup(obj->str);
if (item.str == NULL) {
code = terrno;
goto _exit;
}
break;
}
if (taosArrayPush(array, &item) == NULL) {
code = TSDB_CODE_OUT_OF_MEMORY;
sdbRelease(pSdb, obj);
goto _exit;
break;
}
sdbRelease(pSdb, obj);
}
_exit:
if (code != 0) {
mError("failed to init config array from sdb, since %s", tstrerror(code));
sdbCancelFetch(pSdb, pIter);
sdbRelease(pSdb, obj);
}
return code;
}
@ -752,6 +790,7 @@ SArray *initVariablesFromItems(SArray *pItems) {
}
if (NULL == taosArrayPush(pInfos, &info)) {
mError("failed to push info to array while init variables from items,since %s", tstrerror(terrno));
taosArrayDestroy(pInfos);
return NULL;
}
}
@ -763,7 +802,7 @@ static int32_t mndProcessShowVariablesReq(SRpcMsg *pReq) {
SShowVariablesRsp rsp = {0};
int32_t code = -1;
if (mndCheckOperPrivilege(pReq->info.node, pReq->info.conn.user, MND_OPER_SHOW_VARIABLES) != 0) {
if ((code = mndCheckOperPrivilege(pReq->info.node, pReq->info.conn.user, MND_OPER_SHOW_VARIABLES)) != 0) {
goto _OVER;
}