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(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)); 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(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, "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)); 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; return TSDB_CODE_SUCCESS;
} }

View File

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

View File

@ -387,7 +387,8 @@ int32_t cfgUpdateItem(SConfigItem *pItem, SConfigObj *obj) {
if (obj->str != NULL) { if (obj->str != NULL) {
taosMemoryFree(pItem->str); taosMemoryFree(pItem->str);
pItem->str = taosMemoryMalloc(strlen(obj->str) + 1); 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; break;
} }

View File

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