diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index fb5a9d642c64820c5f40c254abb14c0d0f26b143..06b126a60429eca1299d8225e098e0cafb975b3a 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -425,7 +425,7 @@ void cliHandleExceptImpl(SCliConn* pConn, int32_t code) { transMsg.info.ahandle); } } else { - transMsg.info.ahandle = pCtx ? pCtx->ahandle : NULL; + transMsg.info.ahandle = (pMsg->type != Release && pCtx) ? pCtx->ahandle : NULL; } if (pCtx == NULL || pCtx->pSem == NULL) { @@ -934,7 +934,9 @@ void cliHandleReq(SCliMsg* pMsg, SCliThrd* pThrd) { // persist conn already release by server STransMsg resp; cliBuildExceptResp(pMsg, &resp); - pTransInst->cfp(pTransInst->parent, &resp, NULL); + if (pMsg->type != Release) { + pTransInst->cfp(pTransInst->parent, &resp, NULL); + } destroyCmsg(pMsg); return; }