fix some error and rename some functions

This commit is contained in:
xiao-77 2024-11-13 16:51:26 +08:00
parent 90a2dac7d6
commit 748bb000b0
8 changed files with 40 additions and 29 deletions

View File

@ -53,7 +53,8 @@ extern char tsVersionName[];
extern uint16_t tsServerPort; extern uint16_t tsServerPort;
extern int32_t tsVersion; extern int32_t tsVersion;
extern int32_t tsForceReadConfig; extern int32_t tsForceReadConfig;
extern int32_t tsConfigVersion; extern int32_t tsdmConfigVersion;
extern int32_t tsmmConfigVersion;
extern int32_t tsConfigInited; extern int32_t tsConfigInited;
extern int32_t tsStatusInterval; extern int32_t tsStatusInterval;
extern int32_t tsNumOfSupportVnodes; extern int32_t tsNumOfSupportVnodes;

View File

@ -148,8 +148,11 @@ void cfgDumpCfg(SConfig *pCfg, bool tsc, bool dump);
void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump); void cfgDumpCfgS3(SConfig *pCfg, bool tsc, bool dump);
int32_t cfgGetApollUrl(const char **envCmd, const char *envFile, char *apolloUrl); int32_t cfgGetApollUrl(const char **envCmd, const char *envFile, char *apolloUrl);
SArray *cfgGetLocalCfg(SConfig *pCfg); SArray *getLocalCfg(SConfig *pCfg);
SArray *cfgGetGlobalCfg(SConfig *pCfg); SArray *getGlobalCfg(SConfig *pCfg);
void setLocalCfg(SConfig *pCfg, SArray *pArray);
void setGlobalCfg(SConfig *pCfg, SArray *pArray);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -45,7 +45,8 @@ char tsVersionName[16] = "community";
uint16_t tsServerPort = 6030; uint16_t tsServerPort = 6030;
int32_t tsVersion = 30000000; int32_t tsVersion = 30000000;
int32_t tsForceReadConfig = 0; int32_t tsForceReadConfig = 0;
int32_t tsConfigVersion = 0; int32_t tsdmConfigVersion = -1;
int32_t tsmmConfigVersion = 0;
int32_t tsConfigInited = 0; int32_t tsConfigInited = 0;
int32_t tsStatusInterval = 1; // second int32_t tsStatusInterval = 1; // second
int32_t tsNumOfSupportVnodes = 256; int32_t tsNumOfSupportVnodes = 256;
@ -1917,7 +1918,7 @@ int32_t cfgDeserialize(SArray *array, char *buf, bool isGlobal) {
cJSON_Delete(pRoot); cJSON_Delete(pRoot);
return TSDB_CODE_OUT_OF_MEMORY; return TSDB_CODE_OUT_OF_MEMORY;
} }
tsConfigVersion = pItem->valueint; tsdmConfigVersion = pItem->valueint;
} }
int32_t sz = taosArrayGetSize(array); int32_t sz = taosArrayGetSize(array);
@ -1968,10 +1969,10 @@ int32_t readCfgFile(const char *path, bool isGlobal) {
char filename[CONFIG_FILE_LEN] = {0}; char filename[CONFIG_FILE_LEN] = {0};
SArray *array = NULL; SArray *array = NULL;
if (isGlobal) { if (isGlobal) {
array = cfgGetGlobalCfg(tsCfg); array = getGlobalCfg(tsCfg);
snprintf(filename, sizeof(filename), "%s%sconfig%sglobal.json", path, TD_DIRSEP, TD_DIRSEP); snprintf(filename, sizeof(filename), "%s%sconfig%sglobal.json", path, TD_DIRSEP, TD_DIRSEP);
} else { } else {
array = cfgGetLocalCfg(tsCfg); array = getLocalCfg(tsCfg);
snprintf(filename, sizeof(filename), "%s%sconfig%slocal.json", path, TD_DIRSEP, TD_DIRSEP); snprintf(filename, sizeof(filename), "%s%sconfig%slocal.json", path, TD_DIRSEP, TD_DIRSEP);
} }
@ -2801,7 +2802,7 @@ int32_t persistLocalConfig(const char *path) {
TAOS_RETURN(code); TAOS_RETURN(code);
} }
char *serialized = NULL; char *serialized = NULL;
code = localConfigSerialize(cfgGetLocalCfg(tsCfg), &serialized); code = localConfigSerialize(getLocalCfg(tsCfg), &serialized);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
uError("failed to serialize local config since %s", tstrerror(code)); uError("failed to serialize local config since %s", tstrerror(code));
TAOS_RETURN(code); TAOS_RETURN(code);
@ -2855,13 +2856,12 @@ int32_t tDeserializeSConfigArray(SDecoder *pDecoder, SArray *array) {
int32_t code = 0; int32_t code = 0;
int32_t lino = 0; int32_t lino = 0;
int32_t sz = 0; int32_t sz = 0;
ECfgDataType dtype = CFG_DTYPE_NONE;
tDecodeI32(pDecoder, &sz); tDecodeI32(pDecoder, &sz);
for (int i = 0; i < sz; i++) { for (int i = 0; i < sz; i++) {
SConfigItem item = {0}; SConfigItem item = {0};
TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &item.name)); TAOS_CHECK_EXIT(tDecodeCStr(pDecoder, &item.name));
TAOS_CHECK_EXIT(tDecodeI32(pDecoder, (int32_t *)&dtype)); TAOS_CHECK_EXIT(tDecodeI32(pDecoder, (int32_t *)&item.dtype));
switch (dtype) { switch (item.dtype) {
{ {
case CFG_DTYPE_NONE: case CFG_DTYPE_NONE:
break; break;
@ -2887,6 +2887,7 @@ int32_t tDeserializeSConfigArray(SDecoder *pDecoder, SArray *array) {
break; break;
} }
} }
taosArrayPush(array, &item);
} }
_exit: _exit:
return code; return code;

View File

@ -1635,6 +1635,7 @@ int32_t tDeserializeSConfigReq(void *buf, int32_t bufLen, SConfigReq *pReq) {
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->cver));
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pReq->forceReadConfig));
if (pReq->forceReadConfig) { if (pReq->forceReadConfig) {
pReq->array = taosArrayInit(128, sizeof(SConfigItem));
TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array)); TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pReq->array));
} }
tEndDecode(&decoder); tEndDecode(&decoder);
@ -1677,7 +1678,9 @@ int32_t tDeserializeSConfigRsp(void *buf, int32_t bufLen, SConfigRsp *pRsp) {
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->forceReadConfig));
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isConifgVerified));
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified)); TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->isVersionVerified));
TAOS_CHECK_EXIT(tDecodeI32(&decoder, &pRsp->cver));
if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) { if ((!pRsp->isConifgVerified) || (!pRsp->isVersionVerified)) {
pRsp->array = taosArrayInit(128, sizeof(SConfigItem));
TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array)); TAOS_CHECK_EXIT(tDeserializeSConfigArray(&decoder, pRsp->array));
} }
_exit: _exit:

View File

@ -304,7 +304,7 @@ static void dmProcessConfigRsp(SDnodeMgmt *pMgmt, SRpcMsg *pRsp) {
tDeserializeSConfigRsp(pRsp->pCont, pRsp->contLen, &configRsp) == 0) { tDeserializeSConfigRsp(pRsp->pCont, pRsp->contLen, &configRsp) == 0) {
if (configRsp.forceReadConfig) { if (configRsp.forceReadConfig) {
if (configRsp.isConifgVerified) { if (configRsp.isConifgVerified) {
persistGlobalConfig(cfgGetGlobalCfg(tsCfg), pMgmt->path, configRsp.cver); persistGlobalConfig(getGlobalCfg(tsCfg), pMgmt->path, configRsp.cver);
} else { } else {
// log the difference configurations // log the difference configurations
printConfigNotMatch(configRsp.array); printConfigNotMatch(configRsp.array);
@ -312,13 +312,12 @@ static void dmProcessConfigRsp(SDnodeMgmt *pMgmt, SRpcMsg *pRsp) {
} }
} }
if (!configRsp.isVersionVerified) { if (!configRsp.isVersionVerified) {
cfgLoadFromArray(tsCfg, configRsp.array); persistGlobalConfig(configRsp.array, pMgmt->path, configRsp.cver);
persistGlobalConfig(cfgGetGlobalCfg(tsCfg), pMgmt->path, configRsp.cver);
} }
} }
setAllConfigs(tsCfg); setAllConfigs(tsCfg);
persistLocalConfig(pMgmt->path); persistLocalConfig(pMgmt->path);
setAllConfigs(tsCfg); tsConfigInited = 1;
} }
_exit: _exit:
tFreeSConfigRsp(&configRsp); tFreeSConfigRsp(&configRsp);
@ -329,9 +328,9 @@ void dmSendConfigReq(SDnodeMgmt *pMgmt) {
int32_t code = 0; int32_t code = 0;
SConfigReq req = {0}; SConfigReq req = {0};
req.cver = tsConfigVersion; req.cver = tsdmConfigVersion;
req.forceReadConfig = tsForceReadConfig; req.forceReadConfig = tsForceReadConfig;
req.array = cfgGetGlobalCfg(tsCfg); req.array = getGlobalCfg(tsCfg);
dDebug("send config req to mnode, configVersion:%d", req.cver); dDebug("send config req to mnode, configVersion:%d", req.cver);
int32_t contLen = tSerializeSConfigReq(NULL, 0, &req); int32_t contLen = tSerializeSConfigReq(NULL, 0, &req);

View File

@ -45,7 +45,9 @@ static int32_t mmRequire(const SMgmtInputOpt *pInput, bool *required) {
return code; return code;
} }
static void mmBuildConfigForDeploy(SMnodeMgmt *pMgmt) { persistGlobalConfig(cfgGetGlobalCfg(tsCfg), pMgmt->path, 0); } static void mmBuildConfigForDeploy(SMnodeMgmt *pMgmt) {
persistGlobalConfig(getGlobalCfg(tsCfg), pMgmt->path, tsmmConfigVersion);
}
static void mmBuildOptionForDeploy(SMnodeMgmt *pMgmt, const SMgmtInputOpt *pInput, SMnodeOpt *pOption) { static void mmBuildOptionForDeploy(SMnodeMgmt *pMgmt, const SMgmtInputOpt *pInput, SMnodeOpt *pOption) {
pOption->deploy = true; pOption->deploy = true;

View File

@ -934,21 +934,21 @@ static int32_t mndProcessConfigReq(SRpcMsg *pReq) {
SArray *diffArray = taosArrayInit(16, sizeof(SConfigItem)); SArray *diffArray = taosArrayInit(16, sizeof(SConfigItem));
SConfigRsp configRsp = {0}; SConfigRsp configRsp = {0};
configRsp.forceReadConfig = configReq.forceReadConfig; configRsp.forceReadConfig = configReq.forceReadConfig;
configRsp.cver = tsConfigVersion; configRsp.cver = tsmmConfigVersion;
if (configRsp.forceReadConfig) { if (configRsp.forceReadConfig) {
// compare config array from configReq with current config array // compare config array from configReq with current config array
if (compareSConfigItemArrays(cfgGetGlobalCfg(tsCfg), configReq.array, diffArray)) { if (compareSConfigItemArrays(getGlobalCfg(tsCfg), configReq.array, diffArray)) {
configRsp.array = diffArray; configRsp.array = diffArray;
} else { } else {
configRsp.isConifgVerified = 1; configRsp.isConifgVerified = 1;
taosArrayDestroy(diffArray); taosArrayDestroy(diffArray);
} }
} else { } else {
configRsp.array = cfgGetGlobalCfg(tsCfg); configRsp.array = getGlobalCfg(tsCfg);
if (configReq.cver == tsConfigVersion) { if (configReq.cver == tsmmConfigVersion) {
configRsp.isConifgVerified = 1; configRsp.isVersionVerified = 1;
} else { } else {
configRsp.array = cfgGetGlobalCfg(tsCfg); configRsp.array = getGlobalCfg(tsCfg);
} }
} }

View File

@ -1537,5 +1537,7 @@ void cfgDestroyIter(SConfigIter *pIter) {
taosMemoryFree(pIter); taosMemoryFree(pIter);
} }
SArray *cfgGetLocalCfg(SConfig *pCfg) { return pCfg->localArray; } SArray *getLocalCfg(SConfig *pCfg) { return pCfg->localArray; }
SArray *cfgGetGlobalCfg(SConfig *pCfg) { return pCfg->globalArray; } SArray *getGlobalCfg(SConfig *pCfg) { return pCfg->globalArray; }
void setLocalCfg(SConfig *pCfg, SArray *pArray) { pCfg->localArray = pArray; };
void setGlobalCfg(SConfig *pCfg, SArray *pArray) { pCfg->globalArray = pArray; };