Merge pull request #22167 from taosdata/fix/TD-25308
fix err while connect invalid fqdn
This commit is contained in:
commit
b0dfae00e6
|
@ -1297,13 +1297,19 @@ int initEpSetFromCfg(const char* firstEp, const char* secondEp, SCorEpSet* pEpSe
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t code = taosGetFqdnPortFromEp(firstEp, &mgmtEpSet->eps[0]);
|
int32_t code = taosGetFqdnPortFromEp(firstEp, &mgmtEpSet->eps[mgmtEpSet->numOfEps]);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
terrno = TSDB_CODE_TSC_INVALID_FQDN;
|
terrno = TSDB_CODE_TSC_INVALID_FQDN;
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
uint32_t addr = taosGetIpv4FromFqdn(mgmtEpSet->eps[mgmtEpSet->numOfEps].fqdn);
|
||||||
mgmtEpSet->numOfEps++;
|
if (addr == 0xffffffff) {
|
||||||
|
tscError("failed to resolve firstEp fqdn: %s, code:%s", mgmtEpSet->eps[mgmtEpSet->numOfEps].fqdn,
|
||||||
|
tstrerror(TSDB_CODE_TSC_INVALID_FQDN));
|
||||||
|
memset(&(mgmtEpSet->eps[mgmtEpSet->numOfEps]), 0, sizeof(mgmtEpSet->eps[mgmtEpSet->numOfEps]));
|
||||||
|
} else {
|
||||||
|
mgmtEpSet->numOfEps++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (secondEp && secondEp[0] != 0) {
|
if (secondEp && secondEp[0] != 0) {
|
||||||
|
@ -1313,12 +1319,19 @@ int initEpSetFromCfg(const char* firstEp, const char* secondEp, SCorEpSet* pEpSe
|
||||||
}
|
}
|
||||||
|
|
||||||
taosGetFqdnPortFromEp(secondEp, &mgmtEpSet->eps[mgmtEpSet->numOfEps]);
|
taosGetFqdnPortFromEp(secondEp, &mgmtEpSet->eps[mgmtEpSet->numOfEps]);
|
||||||
mgmtEpSet->numOfEps++;
|
uint32_t addr = taosGetIpv4FromFqdn(mgmtEpSet->eps[mgmtEpSet->numOfEps].fqdn);
|
||||||
|
if (addr == 0xffffffff) {
|
||||||
|
tscError("failed to resolve secondEp fqdn: %s, code:%s", mgmtEpSet->eps[mgmtEpSet->numOfEps].fqdn,
|
||||||
|
tstrerror(TSDB_CODE_TSC_INVALID_FQDN));
|
||||||
|
memset(&(mgmtEpSet->eps[mgmtEpSet->numOfEps]), 0, sizeof(mgmtEpSet->eps[mgmtEpSet->numOfEps]));
|
||||||
|
} else {
|
||||||
|
mgmtEpSet->numOfEps++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mgmtEpSet->numOfEps == 0) {
|
if (mgmtEpSet->numOfEps == 0) {
|
||||||
terrno = TSDB_CODE_TSC_INVALID_FQDN;
|
terrno = TSDB_CODE_RPC_NETWORK_UNAVAIL;
|
||||||
return -1;
|
return TSDB_CODE_RPC_NETWORK_UNAVAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -99,13 +99,20 @@ int32_t processConnectRsp(void* param, SDataBuf* pMsg, int32_t code) {
|
||||||
goto End;
|
goto End;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int updateEpSet = 1;
|
||||||
if (connectRsp.dnodeNum == 1) {
|
if (connectRsp.dnodeNum == 1) {
|
||||||
SEpSet srcEpSet = getEpSet_s(&pTscObj->pAppInfo->mgmtEp);
|
SEpSet srcEpSet = getEpSet_s(&pTscObj->pAppInfo->mgmtEp);
|
||||||
SEpSet dstEpSet = connectRsp.epSet;
|
SEpSet dstEpSet = connectRsp.epSet;
|
||||||
rpcSetDefaultAddr(pTscObj->pAppInfo->pTransporter, srcEpSet.eps[srcEpSet.inUse].fqdn,
|
if (srcEpSet.numOfEps == 1) {
|
||||||
dstEpSet.eps[dstEpSet.inUse].fqdn);
|
rpcSetDefaultAddr(pTscObj->pAppInfo->pTransporter, srcEpSet.eps[srcEpSet.inUse].fqdn,
|
||||||
} else if (connectRsp.dnodeNum > 1 && !isEpsetEqual(&pTscObj->pAppInfo->mgmtEp.epSet, &connectRsp.epSet)) {
|
dstEpSet.eps[dstEpSet.inUse].fqdn);
|
||||||
SEpSet* pOrig = &pTscObj->pAppInfo->mgmtEp.epSet;
|
updateEpSet = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (updateEpSet == 1 && !isEpsetEqual(&pTscObj->pAppInfo->mgmtEp.epSet, &connectRsp.epSet)) {
|
||||||
|
SEpSet corEpSet = getEpSet_s(&pTscObj->pAppInfo->mgmtEp);
|
||||||
|
|
||||||
|
SEpSet* pOrig = &corEpSet;
|
||||||
SEp* pOrigEp = &pOrig->eps[pOrig->inUse];
|
SEp* pOrigEp = &pOrig->eps[pOrig->inUse];
|
||||||
SEp* pNewEp = &connectRsp.epSet.eps[connectRsp.epSet.inUse];
|
SEp* pNewEp = &connectRsp.epSet.eps[connectRsp.epSet.inUse];
|
||||||
tscDebug("mnode epset updated from %d/%d=>%s:%d to %d/%d=>%s:%d in connRsp", pOrig->inUse, pOrig->numOfEps,
|
tscDebug("mnode epset updated from %d/%d=>%s:%d to %d/%d=>%s:%d in connRsp", pOrig->inUse, pOrig->numOfEps,
|
||||||
|
|
Loading…
Reference in New Issue