From 77359f26b34dd108b9e2fad074167c0b3f9759f5 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Tue, 7 Jan 2025 15:26:01 +0800 Subject: [PATCH 1/8] Fix(cfg): resolve dynamic configuration update failure after rolling upgrade to 3.3.5.0 --- include/libs/sync/sync.h | 2 ++ source/dnode/mnode/impl/src/mndConfig.c | 2 ++ source/dnode/mnode/impl/src/mndSync.c | 15 ++++++++++++--- source/dnode/vnode/src/vnd/vnodeSync.c | 1 + source/libs/sync/src/syncPipeline.c | 10 +++++++++- 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index 50c096258e..f1f907ce37 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -176,7 +176,9 @@ typedef struct SSyncFSM { void (*FpRollBackCb)(const struct SSyncFSM* pFsm, SRpcMsg* pMsg, SFsmCbMeta* pMeta); void (*FpRestoreFinishCb)(const struct SSyncFSM* pFsm, const SyncIndex commitIdx); + void (*FpAfterRestoredCb)(const struct SSyncFSM* pFsm, const SyncIndex commitIdx); void (*FpReConfigCb)(const struct SSyncFSM* pFsm, SRpcMsg* pMsg, SReConfigCbMeta* pMeta); + void (*FpLeaderTransferCb)(const struct SSyncFSM* pFsm, SRpcMsg* pMsg, SFsmCbMeta* pMeta); bool (*FpApplyQueueEmptyCb)(const struct SSyncFSM* pFsm); int32_t (*FpApplyQueueItems)(const struct SSyncFSM* pFsm); diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 74bb0561cd..10b9add0a3 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -518,6 +518,8 @@ static int32_t mndProcessConfigDnodeReq(SRpcMsg *pReq) { SMCfgDnodeReq cfgReq = {0}; SConfigObj *vObj = sdbAcquire(pMnode->pSdb, SDB_CFG, "tsmmConfigVersion"); if (vObj == NULL) { + code = TSDB_CODE_SDB_OBJ_NOT_THERE; + mInfo("failed to acquire mnd config version, since %s", tstrerror(code)); goto _err_out; } diff --git a/source/dnode/mnode/impl/src/mndSync.c b/source/dnode/mnode/impl/src/mndSync.c index 7ed970be62..76642d5e58 100644 --- a/source/dnode/mnode/impl/src/mndSync.c +++ b/source/dnode/mnode/impl/src/mndSync.c @@ -309,9 +309,6 @@ void mndRestoreFinish(const SSyncFSM *pFsm, const SyncIndex commitIdx) { } else { mInfo("vgId:1, sync restore finished, repeat call"); } - if (sdbAfterRestored(pMnode->pSdb) != 0) { - mError("failed to prepare sdb while start mnode"); - } } else { mInfo("vgId:1, sync restore finished"); } @@ -329,6 +326,17 @@ void mndRestoreFinish(const SSyncFSM *pFsm, const SyncIndex commitIdx) { } } +void mndAfterRestored(const SSyncFSM *pFsm, const SyncIndex commitIdx) { + SMnode *pMnode = pFsm->data; + + if (!pMnode->deploy) { + if (sdbAfterRestored(pMnode->pSdb) != 0) { + mError("failed to prepare sdb while start mnode"); + } + mInfo("vgId:1, sync restore finished and restore sdb success"); + } +} + int32_t mndSnapshotStartRead(const SSyncFSM *pFsm, void *pParam, void **ppReader) { mInfo("start to read snapshot from sdb"); SMnode *pMnode = pFsm->data; @@ -443,6 +451,7 @@ SSyncFSM *mndSyncMakeFsm(SMnode *pMnode) { pFsm->FpPreCommitCb = NULL; pFsm->FpRollBackCb = NULL; pFsm->FpRestoreFinishCb = mndRestoreFinish; + pFsm->FpAfterRestoredCb = mndAfterRestored; pFsm->FpLeaderTransferCb = NULL; pFsm->FpApplyQueueEmptyCb = mndApplyQueueEmpty; pFsm->FpApplyQueueItems = mndApplyQueueItems; diff --git a/source/dnode/vnode/src/vnd/vnodeSync.c b/source/dnode/vnode/src/vnd/vnodeSync.c index cea82c13ff..068f4dec3d 100644 --- a/source/dnode/vnode/src/vnd/vnodeSync.c +++ b/source/dnode/vnode/src/vnd/vnodeSync.c @@ -697,6 +697,7 @@ static SSyncFSM *vnodeSyncMakeFsm(SVnode *pVnode) { pFsm->FpGetSnapshot = NULL; pFsm->FpGetSnapshotInfo = vnodeSyncGetSnapshotInfo; pFsm->FpRestoreFinishCb = vnodeRestoreFinish; + pFsm->FpAfterRestoredCb = NULL; pFsm->FpLeaderTransferCb = NULL; pFsm->FpApplyQueueEmptyCb = vnodeApplyQueueEmpty; pFsm->FpApplyQueueItems = vnodeApplyQueueItems; diff --git a/source/libs/sync/src/syncPipeline.c b/source/libs/sync/src/syncPipeline.c index af6aab5d2b..5a5d1f02f8 100644 --- a/source/libs/sync/src/syncPipeline.c +++ b/source/libs/sync/src/syncPipeline.c @@ -15,10 +15,10 @@ #define _DEFAULT_SOURCE -#include "syncPipeline.h" #include "syncCommit.h" #include "syncIndexMgr.h" #include "syncInt.h" +#include "syncPipeline.h" #include "syncRaftCfg.h" #include "syncRaftEntry.h" #include "syncRaftStore.h" @@ -901,12 +901,14 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm } while (true); code = 0; + bool restoreFinishAtThisCommit = false; _out: // mark as restored if needed if (!pNode->restoreFinish && pBuf->commitIndex >= pNode->commitIndex && pEntry != NULL && currentTerm <= pEntry->term) { pNode->pFsm->FpRestoreFinishCb(pNode->pFsm, pBuf->commitIndex); pNode->restoreFinish = true; + restoreFinishAtThisCommit = true; sInfo("vgId:%d, restore finished. term:%" PRId64 ", log buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, currentTerm, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); } @@ -920,6 +922,12 @@ _out: pNextEntry = NULL; } (void)taosThreadMutexUnlock(&pBuf->mutex); + + if (restoreFinishAtThisCommit && pNode->pFsm->FpAfterRestoredCb != NULL) { + pNode->pFsm->FpAfterRestoredCb(pNode->pFsm, pBuf->commitIndex); + sInfo("vgId:%d, after restore finished callback executed)", pNode->vgId); + } + TAOS_CHECK_RETURN(syncLogBufferValidate(pBuf)); TAOS_RETURN(code); } From e597baa345a5abf31fdbb8084a2b21ec0126874b Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Tue, 7 Jan 2025 22:01:33 +0800 Subject: [PATCH 2/8] Fix mnode = 3 , trans stuck. --- include/common/tmsgdef.h | 1 + source/dnode/mgmt/mgmt_mnode/src/mmHandle.c | 1 + source/dnode/mnode/impl/src/mndConfig.c | 34 +++++++++++++++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/include/common/tmsgdef.h b/include/common/tmsgdef.h index 93bfe306b6..d6f2363926 100644 --- a/include/common/tmsgdef.h +++ b/include/common/tmsgdef.h @@ -143,6 +143,7 @@ TD_DEF_MSG_TYPE(TDMT_MND_GET_USER_AUTH, "get-user-auth", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CREATE_DNODE, "create-dnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CONFIG_DNODE, "config-dnode", NULL, NULL) + TD_DEF_MSG_TYPE(TDMT_MND_CONFIG_SDB, "config-sdb", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_DROP_DNODE, "drop-dnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CREATE_MNODE, "create-mnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_ALTER_MNODE, "alter-mnode", NULL, NULL) diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c index 165437ed28..84e75ca91f 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c @@ -130,6 +130,7 @@ SArray *mmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_MND_GET_USER_AUTH, mmPutMsgToReadQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CREATE_DNODE, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CONFIG_DNODE, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_MND_CONFIG_SDB, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_DROP_DNODE, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_CREATE_MNODE, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_MND_ALTER_MNODE, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 10b9add0a3..db5f486523 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -17,6 +17,7 @@ #include "audit.h" #include "mndConfig.h" #include "mndDnode.h" +#include "mndMnode.h" #include "mndPrivilege.h" #include "mndSync.h" #include "mndTrans.h" @@ -33,8 +34,9 @@ static int32_t mndProcessConfigDnodeReq(SRpcMsg *pReq); static int32_t mndProcessConfigDnodeRsp(SRpcMsg *pRsp); static int32_t mndProcessConfigReq(SRpcMsg *pReq); static int32_t mndInitWriteCfg(SMnode *pMnode); -static int32_t mndTryRebuildCfg(SMnode *pMnode); +static int32_t mndSendRebuildReq(SMnode *pMnode); static int32_t initConfigArrayFromSdb(SMnode *pMnode, SArray *array); +static int32_t mndTryRebuildConfigSdb(SRpcMsg *pReq); static void cfgArrayCleanUp(SArray *array); static void cfgObjArrayCleanUp(SArray *array); @@ -59,6 +61,7 @@ int32_t mndInitConfig(SMnode *pMnode) { mndSetMsgHandle(pMnode, TDMT_MND_CONFIG_DNODE, mndProcessConfigDnodeReq); mndSetMsgHandle(pMnode, TDMT_DND_CONFIG_DNODE_RSP, mndProcessConfigDnodeRsp); mndSetMsgHandle(pMnode, TDMT_MND_SHOW_VARIABLES, mndProcessShowVariablesReq); + mndSetMsgHandle(pMnode, TDMT_MND_CONFIG_SDB, mndTryRebuildConfigSdb); return sdbSetTable(pMnode->pSdb, table); } @@ -214,7 +217,7 @@ static int32_t mndCfgActionUpdate(SSdb *pSdb, SConfigObj *pOld, SConfigObj *pNew static int32_t mndCfgActionDeploy(SMnode *pMnode) { return mndInitWriteCfg(pMnode); } -static int32_t mndCfgActionAfterRestored(SMnode *pMnode) { return mndTryRebuildCfg(pMnode); } +static int32_t mndCfgActionAfterRestored(SMnode *pMnode) { return mndSendRebuildReq(pMnode); } static int32_t mndProcessConfigReq(SRpcMsg *pReq) { SMnode *pMnode = pReq->info.node; @@ -340,7 +343,32 @@ _OVER: return code; } -int32_t mndTryRebuildCfg(SMnode *pMnode) { +int32_t mndSendRebuildReq(SMnode *pMnode) { + int32_t code = 0; + + SRpcMsg rpcMsg = {.pCont = NULL, + .contLen = 0, + .msgType = TDMT_MND_CONFIG_SDB, + .info.ahandle = 0, + .info.notFreeAhandle = 1, + .info.refId = 0, + .info.noResp = 0, + .info.handle = 0}; + SRpcMsg rpcRsp = {0}; + SEpSet epSet = {0}; + int8_t epUpdated = 0; + mndGetMnodeEpSet(pMnode, &epSet); + + code = rpcSendRecvWithTimeout(pMnode->msgCb.statusRpc, &epSet, &rpcMsg, &rpcRsp, &epUpdated, + tsStatusInterval * 5 * 1000); + if (code != 0) { + mError("failed to send rebuild config req, since %s", tstrerror(code)); + } + return code; +} + +static int32_t mndTryRebuildConfigSdb(SRpcMsg *pReq) { + SMnode *pMnode = pReq->info.node; if (!mndIsLeader(pMnode)) { return TSDB_CODE_SUCCESS; } From 872a24eb1e8e4767b340cd079e89d84952e60154 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Tue, 7 Jan 2025 23:47:36 +0800 Subject: [PATCH 3/8] Fix valgrind errors. --- source/libs/sync/src/syncPipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/sync/src/syncPipeline.c b/source/libs/sync/src/syncPipeline.c index 5a5d1f02f8..3022a1f8ac 100644 --- a/source/libs/sync/src/syncPipeline.c +++ b/source/libs/sync/src/syncPipeline.c @@ -787,6 +787,7 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm bool inBuf = false; SSyncRaftEntry* pNextEntry = NULL; bool nextInBuf = false; + bool restoreFinishAtThisCommit = false; if (commitIndex <= pBuf->commitIndex) { sDebug("vgId:%d, stale commit index. current:%" PRId64 ", notified:%" PRId64 "", vgId, pBuf->commitIndex, @@ -901,7 +902,6 @@ int32_t syncLogBufferCommit(SSyncLogBuffer* pBuf, SSyncNode* pNode, int64_t comm } while (true); code = 0; - bool restoreFinishAtThisCommit = false; _out: // mark as restored if needed if (!pNode->restoreFinish && pBuf->commitIndex >= pNode->commitIndex && pEntry != NULL && From b46bd98f6d02c9e78db426374c31a894c93f6730 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Wed, 8 Jan 2025 09:29:46 +0800 Subject: [PATCH 4/8] Fix mem leak. --- source/dnode/mnode/impl/src/mndConfig.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index db5f486523..48fc54b6b7 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -359,8 +359,7 @@ int32_t mndSendRebuildReq(SMnode *pMnode) { int8_t epUpdated = 0; mndGetMnodeEpSet(pMnode, &epSet); - code = rpcSendRecvWithTimeout(pMnode->msgCb.statusRpc, &epSet, &rpcMsg, &rpcRsp, &epUpdated, - tsStatusInterval * 5 * 1000); + code = tmsgSendReq(&epSet, &rpcMsg); if (code != 0) { mError("failed to send rebuild config req, since %s", tstrerror(code)); } From 3068226c3c8a24658f8e1f62f51dd841cf98be00 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Wed, 8 Jan 2025 11:11:21 +0800 Subject: [PATCH 5/8] Fix tmsg ut failed. --- include/common/tmsgdef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/common/tmsgdef.h b/include/common/tmsgdef.h index d6f2363926..8bdc9a9346 100644 --- a/include/common/tmsgdef.h +++ b/include/common/tmsgdef.h @@ -143,7 +143,6 @@ TD_DEF_MSG_TYPE(TDMT_MND_GET_USER_AUTH, "get-user-auth", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CREATE_DNODE, "create-dnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CONFIG_DNODE, "config-dnode", NULL, NULL) - TD_DEF_MSG_TYPE(TDMT_MND_CONFIG_SDB, "config-sdb", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_DROP_DNODE, "drop-dnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CREATE_MNODE, "create-mnode", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_ALTER_MNODE, "alter-mnode", NULL, NULL) @@ -262,6 +261,7 @@ TD_DEF_MSG_TYPE(TDMT_MND_UPDATE_DNODE_INFO, "update-dnode-info", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_AUDIT, "audit", NULL, NULL) TD_DEF_MSG_TYPE(TDMT_MND_CONFIG, "init-config", NULL, NULL) + TD_DEF_MSG_TYPE(TDMT_MND_CONFIG_SDB, "config-sdb", NULL, NULL) TD_CLOSE_MSG_SEG(TDMT_END_MND_MSG) TD_NEW_MSG_SEG(TDMT_VND_MSG) // 2<<8 From 430e62aab666bdb3e04afc1aed9c6650f659157d Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Wed, 8 Jan 2025 14:55:37 +0800 Subject: [PATCH 6/8] Fix double free. --- source/dnode/mnode/impl/src/mndConfig.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 48fc54b6b7..644b327f2c 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -799,7 +799,6 @@ static void cfgObjArrayCleanUp(SArray *array) { for (int32_t i = 0; i < sz; ++i) { SConfigObj *obj = taosArrayGet(array, i); tFreeSConfigObj(obj); - taosMemoryFree(obj); } taosArrayDestroy(array); } From 4a5d57589441629f064fdea5ddb531dd922f4467 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Wed, 8 Jan 2025 15:45:58 +0800 Subject: [PATCH 7/8] Fix unhandle msg. --- source/dnode/mgmt/mgmt_mnode/src/mmHandle.c | 2 ++ source/dnode/mnode/impl/src/mndConfig.c | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c index 84e75ca91f..80ef0d31de 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c @@ -114,6 +114,8 @@ SArray *mmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_DND_CREATE_VNODE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_DROP_VNODE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_CONFIG_DNODE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_MND_CONFIG_SDB_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_DND_ALTER_MNODE_TYPE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_ALTER_VNODE_TYPE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_DND_CHECK_VNODE_LEARNER_CATCHUP_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index 644b327f2c..eee4bef624 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -35,6 +35,7 @@ static int32_t mndProcessConfigDnodeRsp(SRpcMsg *pRsp); static int32_t mndProcessConfigReq(SRpcMsg *pReq); static int32_t mndInitWriteCfg(SMnode *pMnode); static int32_t mndSendRebuildReq(SMnode *pMnode); +static int32_t mndTryRebuildConfigSdbRsp(SRpcMsg *pRsp); static int32_t initConfigArrayFromSdb(SMnode *pMnode, SArray *array); static int32_t mndTryRebuildConfigSdb(SRpcMsg *pReq); static void cfgArrayCleanUp(SArray *array); @@ -62,6 +63,7 @@ int32_t mndInitConfig(SMnode *pMnode) { mndSetMsgHandle(pMnode, TDMT_DND_CONFIG_DNODE_RSP, mndProcessConfigDnodeRsp); mndSetMsgHandle(pMnode, TDMT_MND_SHOW_VARIABLES, mndProcessShowVariablesReq); mndSetMsgHandle(pMnode, TDMT_MND_CONFIG_SDB, mndTryRebuildConfigSdb); + mndSetMsgHandle(pMnode, TDMT_MND_CONFIG_SDB_RSP, mndTryRebuildConfigSdbRsp); return sdbSetTable(pMnode->pSdb, table); } @@ -356,7 +358,7 @@ int32_t mndSendRebuildReq(SMnode *pMnode) { .info.handle = 0}; SRpcMsg rpcRsp = {0}; SEpSet epSet = {0}; - int8_t epUpdated = 0; + mndGetMnodeEpSet(pMnode, &epSet); code = tmsgSendReq(&epSet, &rpcMsg); @@ -638,6 +640,11 @@ static int32_t mndProcessConfigDnodeRsp(SRpcMsg *pRsp) { return 0; } +static int32_t mndTryRebuildConfigSdbRsp(SRpcMsg *pRsp) { + mInfo("rebuild config sdb rsp"); + return 0; +} + // get int32_t value from 'SMCfgDnodeReq' static int32_t mndMCfgGetValInt32(SMCfgDnodeReq *pMCfgReq, int32_t optLen, int32_t *pOutValue) { int32_t code = 0; From 742e3251b767db059f3d318007926e24fc2a32f4 Mon Sep 17 00:00:00 2001 From: xiao-77 Date: Wed, 8 Jan 2025 15:51:58 +0800 Subject: [PATCH 8/8] Remove unused rpcRsp. --- source/dnode/mnode/impl/src/mndConfig.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/dnode/mnode/impl/src/mndConfig.c b/source/dnode/mnode/impl/src/mndConfig.c index eee4bef624..0729b2a26e 100644 --- a/source/dnode/mnode/impl/src/mndConfig.c +++ b/source/dnode/mnode/impl/src/mndConfig.c @@ -356,7 +356,6 @@ int32_t mndSendRebuildReq(SMnode *pMnode) { .info.refId = 0, .info.noResp = 0, .info.handle = 0}; - SRpcMsg rpcRsp = {0}; SEpSet epSet = {0}; mndGetMnodeEpSet(pMnode, &epSet);