From 45a093331698f6778386780b15798a0427faa754 Mon Sep 17 00:00:00 2001 From: kailixu Date: Thu, 21 Sep 2023 16:38:53 +0800 Subject: [PATCH] fix: user dropped logic in tsc --- source/client/src/clientHb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index 9d24bd3753..70382f7683 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -96,12 +96,13 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat } } - if (pRsp->dropped == 1 && pTscObj->dropped == 0) { - pTscObj->dropped = 1; - if (pTscObj->userDroppedInfo.fp) { - SPassInfo *dropInfo = &pTscObj->userDroppedInfo; - if (dropInfo->fp) { - (*dropInfo->fp)(dropInfo->param, NULL, TAOS_NOTIFY_USER_DROPPED); + if (pRsp->dropped == 1) { + if (atomic_val_compare_exchange_8(&pTscObj->dropped, 0, 1) == 0) { + if (pTscObj->userDroppedInfo.fp) { + SPassInfo *dropInfo = &pTscObj->userDroppedInfo; + if (dropInfo->fp) { + (*dropInfo->fp)(dropInfo->param, NULL, TAOS_NOTIFY_USER_DROPPED); + } } } releaseTscObj(pReq->connKey.tscRid); @@ -784,7 +785,7 @@ int32_t hbQueryHbReqHandle(SClientHbKey *connKey, void *param, SClientHbReq *req if (!pTscObj) { tscWarn("tscObj rid %" PRIx64 " not exist", connKey->tscRid); return TSDB_CODE_APP_ERROR; - } else if (pTscObj->dropped) { + } else if (atomic_load_8(&pTscObj->dropped) == 1) { tscDebug("tscObj rid %" PRIx64 " user:%s dropped", connKey->tscRid, pTscObj->user); releaseTscObj(connKey->tscRid); return TSDB_CODE_SUCCESS;