fix(sync): compatibility for both mnode(use snapshot) and vnode(no snapshot)

This commit is contained in:
Minghao Li 2022-06-09 17:16:06 +08:00
parent 6ba0f160b7
commit 3148df2107
1 changed files with 6 additions and 5 deletions

View File

@ -1215,13 +1215,14 @@ void syncNodeBecomeLeader(SSyncNode* pSyncNode) {
// update sender private term
SSyncSnapshotSender* pMySender = syncNodeGetSnapshotSender(pSyncNode, &(pSyncNode->myRaftId));
ASSERT(pMySender != NULL);
for (int i = 0; i < pSyncNode->pMatchIndex->replicaNum; ++i) {
if ((pSyncNode->senders)[i]->privateTerm > pMySender->privateTerm) {
pMySender->privateTerm = (pSyncNode->senders)[i]->privateTerm;
if (pMySender != NULL) {
for (int i = 0; i < pSyncNode->pMatchIndex->replicaNum; ++i) {
if ((pSyncNode->senders)[i]->privateTerm > pMySender->privateTerm) {
pMySender->privateTerm = (pSyncNode->senders)[i]->privateTerm;
}
}
(pMySender->privateTerm) += 100;
}
(pMySender->privateTerm) += 100;
// stop elect timer
syncNodeStopElectTimer(pSyncNode);