diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index a3068d69a951f03014386d734adda73088b6de77..262c9d55309da56df9364d00399b2fb15e0258e8 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -457,6 +457,20 @@ SSyncNode* syncNodeOpen(const SSyncInfo* pSyncInfo) { void syncNodeStart(SSyncNode* pSyncNode) { // start raft + if (pSyncNode->replicaNum == 1) { + syncNodeBecomeLeader(pSyncNode); + + syncNodeLog2("==state change become leader immediately==", pSyncNode); + + // Raft 3.6.2 Committing entries from previous terms + + // use this now + syncNodeAppendNoop(pSyncNode); + syncMaybeAdvanceCommitIndex(pSyncNode); // maybe only one replica + return; + } + + syncNodeBecomeFollower(pSyncNode); // for test diff --git a/source/libs/sync/test/test.sh b/source/libs/sync/test/test.sh new file mode 100644 index 0000000000000000000000000000000000000000..7a693aac0b811bba987bf059b06862706d07fd7c --- /dev/null +++ b/source/libs/sync/test/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +