From ba7bfc6479193ff489f226428763e6f2ec92c808 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Tue, 26 Apr 2022 21:02:00 +0800 Subject: [PATCH] feature(rpc): add retry --- source/libs/transport/src/transCli.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index 78fcb49b2c..1508fae460 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -890,15 +890,16 @@ int cliAppCb(SCliConn* pConn, STransMsg* pResp, SCliMsg* pMsg) { tmsg_t msgType = pCtx->msgType; if ((pTransInst->retry != NULL && (pTransInst->retry(pResp->code))) || - ((pResp->code != 0) && msgType == TDMT_MND_CONNECT)) { + ((pResp->code == TSDB_CODE_RPC_NETWORK_UNAVAIL) && msgType == TDMT_MND_CONNECT)) { pCtx->retryCount += 1; pMsg->st = taosGetTimestampUs(); - if (msgType == TDMT_MND_CONNECT) { + if (msgType == TDMT_MND_CONNECT && pResp->code == TSDB_CODE_RPC_NETWORK_UNAVAIL) { if (pCtx->retryCount < pEpSet->numOfEps) { pEpSet->inUse = (++pEpSet->inUse) % pEpSet->numOfEps; cliHandleReq(pMsg, pThrd); return -1; } + cliDestroyConn(pConn, true); } else if (pCtx->retryCount < TRANS_RETRY_COUNT_LIMIT) { if (pResp->contLen == 0) { pEpSet->inUse = (pEpSet->inUse++) % pEpSet->numOfEps;