[TD-586] fqdn returned by mnode may be null
This commit is contained in:
parent
6cd6944755
commit
baf9de922c
|
@ -414,15 +414,35 @@ static void dnodeProcessStatusRsp(SRpcMsg *pMsg) {
|
||||||
|
|
||||||
dnodeProcessModuleStatus(pCfg->moduleStatus);
|
dnodeProcessModuleStatus(pCfg->moduleStatus);
|
||||||
dnodeUpdateDnodeCfg(pCfg);
|
dnodeUpdateDnodeCfg(pCfg);
|
||||||
|
|
||||||
dnodeUpdateMnodeInfos(pMnodes);
|
dnodeUpdateMnodeInfos(pMnodes);
|
||||||
taosTmrReset(dnodeSendStatusMsg, tsStatusInterval * 1000, NULL, tsDnodeTmr, &tsStatusTimer);
|
taosTmrReset(dnodeSendStatusMsg, tsStatusInterval * 1000, NULL, tsDnodeTmr, &tsStatusTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool dnodeCheckMnodeInfos(SDMMnodeInfos *pMnodes) {
|
||||||
|
if (pMnodes->nodeNum <= 0 || pMnodes->nodeNum > 3) {
|
||||||
|
dError("invalid mnode infos, num:%d", pMnodes->nodeNum);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int32_t i = 0; i < pMnodes->nodeNum; ++i) {
|
||||||
|
SDMMnodeInfo *pMnodeInfo = &pMnodes->nodeInfos[i];
|
||||||
|
if (pMnodeInfo->nodeId <= 0 || strlen(pMnodeInfo->nodeEp) <= 5) {
|
||||||
|
dError("invalid mnode info:%d, nodeId:%d nodeEp:%s", pMnodeInfo->nodeId, pMnodeInfo->nodeEp);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static void dnodeUpdateMnodeInfos(SDMMnodeInfos *pMnodes) {
|
static void dnodeUpdateMnodeInfos(SDMMnodeInfos *pMnodes) {
|
||||||
bool mnodesChanged = (memcmp(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos)) != 0);
|
bool mnodesChanged = (memcmp(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos)) != 0);
|
||||||
bool mnodesNotInit = (tsDMnodeInfos.nodeNum == 0);
|
bool mnodesNotInit = (tsDMnodeInfos.nodeNum == 0);
|
||||||
if (!(mnodesChanged || mnodesNotInit)) return;
|
if (!(mnodesChanged || mnodesNotInit)) return;
|
||||||
|
|
||||||
|
if (!dnodeCheckMnodeInfos(pMnodes)) return;
|
||||||
|
|
||||||
memcpy(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos));
|
memcpy(&tsDMnodeInfos, pMnodes, sizeof(SDMMnodeInfos));
|
||||||
dPrint("mnode infos is changed, nodeNum:%d inUse:%d", tsDMnodeInfos.nodeNum, tsDMnodeInfos.inUse);
|
dPrint("mnode infos is changed, nodeNum:%d inUse:%d", tsDMnodeInfos.nodeNum, tsDMnodeInfos.inUse);
|
||||||
for (int32_t i = 0; i < tsDMnodeInfos.nodeNum; i++) {
|
for (int32_t i = 0; i < tsDMnodeInfos.nodeNum; i++) {
|
||||||
|
|
Loading…
Reference in New Issue