fix: client HB logic

This commit is contained in:
kailixu 2023-05-17 10:17:30 +08:00
parent 0eb94d97d3
commit ae3aa6535f
1 changed files with 14 additions and 29 deletions

View File

@ -791,27 +791,20 @@ SClientHbBatchReq *hbGatherAllInfo(SAppHbMgr *pAppHbMgr) {
return NULL; return NULL;
} }
int64_t rid = -1; void *pIter = NULL;
int32_t code = 0; SHbParam param = {0};
while ((pIter = taosHashIterate(pAppHbMgr->activeInfo, pIter))) {
void *pIter = taosHashIterate(pAppHbMgr->activeInfo, NULL);
SClientHbReq *pOneReq = pIter; SClientHbReq *pOneReq = pIter;
SClientHbKey *connKey = pOneReq ? &pOneReq->connKey : NULL; SClientHbKey *connKey = &pOneReq->connKey;
if (connKey != NULL) rid = connKey->tscRid; STscObj *pTscObj = (STscObj *)acquireTscObj(connKey->tscRid);
STscObj *pTscObj = (STscObj *)acquireTscObj(rid); if (!pTscObj) {
if (pTscObj == NULL) { continue;
tFreeClientHbBatchReq(pBatchReq);
return NULL;
} }
SHbParam param = {0};
while (pIter != NULL) {
pOneReq = taosArrayPush(pBatchReq->reqs, pOneReq); pOneReq = taosArrayPush(pBatchReq->reqs, pOneReq);
switch (pOneReq->connKey.connType) { switch (connKey->connType) {
case CONN_TYPE__QUERY: { case CONN_TYPE__QUERY: {
if (param.clusterId == 0) { if (param.clusterId == 0) {
// init // init
@ -824,25 +817,17 @@ SClientHbBatchReq *hbGatherAllInfo(SAppHbMgr *pAppHbMgr) {
default: default:
break; break;
} }
if (clientHbMgr.reqHandle[pOneReq->connKey.connType]) { if (clientHbMgr.reqHandle[connKey->connType]) {
code = (*clientHbMgr.reqHandle[pOneReq->connKey.connType])(&pOneReq->connKey, &param, pOneReq); int32_t code = (*clientHbMgr.reqHandle[connKey->connType])(connKey, &param, pOneReq);
if (code) { if (code) {
tscWarn("hbGatherAllInfo failed since %s, tscRid:%" PRIi64 ", connType:%" PRIi8, tstrerror(code), tscWarn("hbGatherAllInfo failed since %s, tscRid:%" PRIi64 ", connType:%" PRIi8, tstrerror(code),
pOneReq->connKey.tscRid, pOneReq->connKey.connType); connKey->tscRid, connKey->connType);
} }
} }
if (code) { releaseTscObj(connKey->tscRid);
pIter = taosHashIterate(pAppHbMgr->activeInfo, pIter);
pOneReq = pIter;
continue;
} }
pIter = taosHashIterate(pAppHbMgr->activeInfo, pIter);
pOneReq = pIter;
}
releaseTscObj(rid);
return pBatchReq; return pBatchReq;
} }