From de5aedd8f36f36938cf0c169070fc709278fcdac Mon Sep 17 00:00:00 2001 From: dmchen Date: Wed, 16 Aug 2023 10:20:48 +0800 Subject: [PATCH] vnode.json --- include/libs/sync/sync.h | 2 ++ source/dnode/vnode/src/vnd/vnodeCommit.c | 3 +++ source/libs/sync/src/syncMain.c | 16 ++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index b4c52fbc56..b1fc046211 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -272,6 +272,8 @@ SSyncState syncGetState(int64_t rid); void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet); const char* syncStr(ESyncState state); +SSyncCfg syncNodeGetConfig(int64_t rid); + #ifdef __cplusplus } #endif diff --git a/source/dnode/vnode/src/vnd/vnodeCommit.c b/source/dnode/vnode/src/vnd/vnodeCommit.c index fd701d7b95..a54297af85 100644 --- a/source/dnode/vnode/src/vnd/vnodeCommit.c +++ b/source/dnode/vnode/src/vnd/vnodeCommit.c @@ -15,6 +15,7 @@ #include "vnd.h" #include "vnodeInt.h" +#include "sync.h" extern int32_t tsdbPreCommit(STsdb *pTsdb); extern int32_t tsdbCommitBegin(STsdb *pTsdb, SCommitInfo *pInfo); @@ -287,6 +288,8 @@ static int32_t vnodePrepareCommit(SVnode *pVnode, SCommitInfo *pInfo) { tsem_wait(&pVnode->canCommit); + pVnode->config.syncCfg = syncNodeGetConfig(pVnode->sync); + pVnode->state.commitTerm = pVnode->state.applyTerm; pInfo->info.config = pVnode->config; diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index ace4a7c9c5..9c903dcbf8 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -106,6 +106,22 @@ _err: return -1; } +SSyncCfg syncNodeGetConfig(int64_t rid){ + SSyncNode* pSyncNode = syncNodeAcquire(rid); + + SSyncCfg cfg = {0}; + if (pSyncNode == NULL) { + sError("failed to acquire rid:%" PRId64 " of tsNodeReftId for pSyncNode", rid); + return cfg; + } + + cfg = pSyncNode->raftCfg.cfg; + + syncNodeRelease(pSyncNode); + + return cfg; +} + void syncStop(int64_t rid) { SSyncNode* pSyncNode = syncNodeAcquire(rid); if (pSyncNode != NULL) {