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;
void *pIter = taosHashIterate(pAppHbMgr->activeInfo, NULL);
SClientHbReq *pOneReq = pIter;
SClientHbKey *connKey = pOneReq ? &pOneReq->connKey : NULL;
if (connKey != NULL) rid = connKey->tscRid;
STscObj *pTscObj = (STscObj *)acquireTscObj(rid);
if (pTscObj == NULL) {
tFreeClientHbBatchReq(pBatchReq);
return NULL;
}
SHbParam param = {0}; SHbParam param = {0};
while ((pIter = taosHashIterate(pAppHbMgr->activeInfo, pIter))) {
SClientHbReq *pOneReq = pIter;
SClientHbKey *connKey = &pOneReq->connKey;
STscObj *pTscObj = (STscObj *)acquireTscObj(connKey->tscRid);
if (!pTscObj) {
continue;
}
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,24 +817,16 @@ 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;
} }