diff --git a/source/libs/sync/src/syncEnv.c b/source/libs/sync/src/syncEnv.c index e67439f8feae8601e75e0c8df2dcc82aced32a86..c92af0dd427f3af746da8d6876e9df127cf10990 100644 --- a/source/libs/sync/src/syncEnv.c +++ b/source/libs/sync/src/syncEnv.c @@ -35,8 +35,9 @@ bool syncEnvIsStart() { } int32_t syncEnvStart() { - int32_t ret = 0; - taosSeedRand(taosGetTimestampSec()); + int32_t ret = 0; + uint32_t seed = (uint32_t)(taosGetTimestampNs() & 0x00000000FFFFFFFF); + taosSeedRand(seed); // gSyncEnv = doSyncEnvStart(gSyncEnv); gSyncEnv = doSyncEnvStart(); assert(gSyncEnv != NULL); diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 33e7a8241f92f2865e5d1e1a209237dac8c54693..482a622398247188e1fa55492090408822976ca8 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -2290,7 +2290,7 @@ static int32_t syncNodeConfigChangeFinish(SSyncNode* ths, SRpcMsg* pRpcMsg, SSyn ths->pFsm->FpReConfigCb(ths->pFsm, pRpcMsg, cbMeta); } - // update changing + // clear changing ths->changing = false; char tmpbuf[512]; @@ -2309,6 +2309,9 @@ static int32_t syncNodeConfigChangeFinish(SSyncNode* ths, SRpcMsg* pRpcMsg, SSyn static int32_t syncNodeConfigChange(SSyncNode* ths, SRpcMsg* pRpcMsg, SSyncRaftEntry* pEntry, SyncReconfigFinish* pFinish) { + // set changing + ths->changing = true; + // old config SSyncCfg oldSyncCfg = ths->pRaftCfg->cfg;