diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index b1fc046211..2ac25ff5e6 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -272,7 +272,7 @@ SSyncState syncGetState(int64_t rid); void syncGetRetryEpSet(int64_t rid, SEpSet* pEpSet); const char* syncStr(ESyncState state); -SSyncCfg syncNodeGetConfig(int64_t rid); +int32_t syncNodeGetConfig(int64_t rid, SSyncCfg *cfg); #ifdef __cplusplus } diff --git a/source/dnode/vnode/src/vnd/vnodeCommit.c b/source/dnode/vnode/src/vnd/vnodeCommit.c index a54297af85..136168c5cc 100644 --- a/source/dnode/vnode/src/vnd/vnodeCommit.c +++ b/source/dnode/vnode/src/vnd/vnodeCommit.c @@ -288,7 +288,7 @@ static int32_t vnodePrepareCommit(SVnode *pVnode, SCommitInfo *pInfo) { tsem_wait(&pVnode->canCommit); - pVnode->config.syncCfg = syncNodeGetConfig(pVnode->sync); + if(syncNodeGetConfig(pVnode->sync, &pVnode->config.syncCfg) != 0) goto _exit; pVnode->state.commitTerm = pVnode->state.applyTerm; diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 9c903dcbf8..e8cece60e9 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -106,20 +106,19 @@ _err: return -1; } -SSyncCfg syncNodeGetConfig(int64_t rid){ +int32_t syncNodeGetConfig(int64_t rid, SSyncCfg *cfg){ SSyncNode* pSyncNode = syncNodeAcquire(rid); - SSyncCfg cfg = {0}; if (pSyncNode == NULL) { sError("failed to acquire rid:%" PRId64 " of tsNodeReftId for pSyncNode", rid); - return cfg; + return -1; } - cfg = pSyncNode->raftCfg.cfg; + *cfg = pSyncNode->raftCfg.cfg; syncNodeRelease(pSyncNode); - return cfg; + return 0; } void syncStop(int64_t rid) {