remove a potential rpcSendRecv deadlock

This commit is contained in:
Jeff Tao 2020-12-01 03:44:37 +00:00
parent 71afc90b36
commit 4e0f1055dc
1 changed files with 8 additions and 1 deletions

View File

@ -630,7 +630,14 @@ static void rpcReleaseConn(SRpcConn *pConn) {
} else {
// if there is an outgoing message, free it
if (pConn->outType && pConn->pReqMsg) {
if (pConn->pContext) pConn->pContext->pConn = NULL;
if (pContext->pRsp) {
// for synchronous API, post semaphore to unblock app
pContext->pRsp->code = TSDB_CODE_RPC_APP_ERROR;
pContext->pRsp->pCont = NULL;
pContext->pRsp->contLen = 0;
tsem_post(pContext->pSem);
}
pConn->pContext->pConn = NULL;
taosRemoveRef(tsRpcRefId, pConn->pContext->rid);
}
}