From 2c619652aa526e22fe12cf0f7c26fc97c6a03f04 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 19 Jul 2022 20:06:03 +0800 Subject: [PATCH 1/2] fix: crash while set rpcinfo for db trans --- source/dnode/mnode/impl/src/mndTrans.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndTrans.c b/source/dnode/mnode/impl/src/mndTrans.c index 679f8085bd..7fa3592d49 100644 --- a/source/dnode/mnode/impl/src/mndTrans.c +++ b/source/dnode/mnode/impl/src/mndTrans.c @@ -708,9 +708,13 @@ int32_t mndSetRpcInfoForDbTrans(SMnode *pMnode, SRpcMsg *pMsg, EOperType oper, c if (pTrans->oper == oper) { if (strcasecmp(dbname, pTrans->dbname1) == 0) { mDebug("trans:%d, db:%s oper:%d matched with input", pTrans->id, dbname, oper); - if (taosArrayPush(pTrans->pRpcArray, &pMsg->info) != NULL) { - code = 0; + if (pTrans->pRpcArray == NULL) { + pTrans->pRpcArray = taosArrayInit(1, sizeof(SRpcHandleInfo)); + if (pTrans->pRpcArray != NULL && taosArrayPush(pTrans->pRpcArray, &pMsg->info) != NULL) { + code = 0; + } } + sdbRelease(pMnode->pSdb, pTrans); break; } From bc6f4521574f7c3ac78786411703139f06610cd1 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 19 Jul 2022 20:28:55 +0800 Subject: [PATCH 2/2] fix: crash while set rpcinfo for db trans --- source/dnode/mnode/impl/src/mndTrans.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndTrans.c b/source/dnode/mnode/impl/src/mndTrans.c index 7fa3592d49..096a1534fd 100644 --- a/source/dnode/mnode/impl/src/mndTrans.c +++ b/source/dnode/mnode/impl/src/mndTrans.c @@ -710,9 +710,9 @@ int32_t mndSetRpcInfoForDbTrans(SMnode *pMnode, SRpcMsg *pMsg, EOperType oper, c mDebug("trans:%d, db:%s oper:%d matched with input", pTrans->id, dbname, oper); if (pTrans->pRpcArray == NULL) { pTrans->pRpcArray = taosArrayInit(1, sizeof(SRpcHandleInfo)); - if (pTrans->pRpcArray != NULL && taosArrayPush(pTrans->pRpcArray, &pMsg->info) != NULL) { - code = 0; - } + } + if (pTrans->pRpcArray != NULL && taosArrayPush(pTrans->pRpcArray, &pMsg->info) != NULL) { + code = 0; } sdbRelease(pMnode->pSdb, pTrans);