Fix some mem errors and add dmstop while verify failed.

This commit is contained in:
xiao-77 2024-12-05 09:16:10 +08:00
parent dbaa4349ea
commit cb50b1e52c
4 changed files with 16 additions and 10 deletions

View File

@ -892,6 +892,9 @@ static int32_t taosAddServerCfg(SConfig *pCfg) {
TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "cacheLazyLoadThreshold", tsCacheLazyLoadThreshold, 0, 100000, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER,CFG_CATEGORY_GLOBAL));
TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "fPrecision", tsFPrecision, 0.0f, 100000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE,CFG_CATEGORY_GLOBAL));
SConfigItem *pItem = NULL;
TAOS_CHECK_GET_CFG_ITEM(pCfg, pItem, "fPrecision");
tsFPrecision = pItem->fval;
TAOS_CHECK_RETURN(cfgAddFloat(pCfg, "dPrecision", tsDPrecision, 0.0f, 1000000.0f, CFG_SCOPE_SERVER, CFG_DYN_NONE,CFG_CATEGORY_GLOBAL));
TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "maxRange", tsMaxRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_SERVER_LAZY,CFG_CATEGORY_GLOBAL));
TAOS_CHECK_RETURN(cfgAddInt32(pCfg, "curRange", tsCurRange, 0, 65536, CFG_SCOPE_SERVER, CFG_DYN_NONE,CFG_CATEGORY_GLOBAL));
@ -1998,6 +2001,8 @@ int32_t cfgDeserialize(SArray *array, char *buf, bool isGlobal) {
}
}
}
_exit:
cJSON_Delete(pRoot);
return TSDB_CODE_SUCCESS;
}

View File

@ -315,6 +315,7 @@ static void dmProcessConfigRsp(SDnodeMgmt *pMgmt, SRpcMsg *pRsp) {
} else {
// log the difference configurations
printConfigNotMatch(configRsp.array);
dmStop();
goto _exit;
}
}

View File

@ -387,7 +387,8 @@ int32_t cfgUpdateItem(SConfigItem *pItem, SConfigObj *obj) {
if (obj->str != NULL) {
taosMemoryFree(pItem->str);
pItem->str = taosMemoryMalloc(strlen(obj->str) + 1);
tstrncpy(pItem->str, obj->str, strlen(obj->str) + 1);
tstrncpy(pItem->str, obj->str, strlen(obj->str));
pItem->str[strlen(obj->str)] = 0;
}
break;
}

View File

@ -107,32 +107,31 @@ int32_t cfgUpdateFromArray(SConfig *pCfg, SArray *pArgs) {
(void)taosThreadMutexUnlock(&pCfg->lock);
TAOS_RETURN(TSDB_CODE_CFG_NOT_FOUND);
}
char value[30];
switch (pItemNew->dtype) {
case CFG_DTYPE_BOOL:
strncpy(value, pItemNew->bval ? "true" : "false", sizeof(value) - 1);
pItemOld->bval = pItemNew->bval;
break;
case CFG_DTYPE_INT32:
sprintf(value, "%d", pItemNew->i32);
pItemOld->i32 = pItemNew->i32;
break;
case CFG_DTYPE_INT64:
sprintf(value, "%" PRId64, pItemNew->i64);
pItemOld->i64 = pItemNew->i64;
break;
case CFG_DTYPE_FLOAT:
sprintf(value, "%f", pItemNew->fval);
case CFG_DTYPE_DOUBLE:
pItemOld->fval = pItemNew->fval;
break;
case CFG_DTYPE_STRING:
case CFG_DTYPE_DIR:
case CFG_DTYPE_LOCALE:
case CFG_DTYPE_CHARSET:
case CFG_DTYPE_TIMEZONE:
strcpy(value, pItemNew->str);
taosMemoryFree(pItemOld->str);
pItemOld->str = taosStrdup(pItemNew->str);
break;
default:
break;
}
value[sizeof(value) - 1] = '\0';
TAOS_CHECK_RETURN(cfgSetItemVal(pItemOld, pItemNew->name, value, CFG_STYPE_ARG_LIST));
(void)taosThreadMutexUnlock(&pCfg->lock);
}