From 0fdeb5fbae56e06835771c6870ef7bc2d35d92a2 Mon Sep 17 00:00:00 2001 From: dmchen Date: Wed, 17 May 2023 17:28:20 +0800 Subject: [PATCH] restore learner stuck --- source/libs/sync/src/syncMain.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 499df4a98b..f64c2a9560 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -2413,6 +2413,11 @@ int32_t syncNodeOnHeartbeat(SSyncNode* ths, const SRpcMsg* pRpcMsg) { "vgId:%d, heartbeat msg from dnode:%d, cluster:%d, Msgterm:%" PRId64 " currentTerm:%" PRId64, ths->vgId, DID(&(pMsg->srcId)), CID(&(pMsg->srcId)), pMsg->term, currentTerm); + if(pMsg->term > currentTerm && ths->state == TAOS_SYNC_STATE_LEARNER){ + raftStoreSetTerm(ths, pMsg->term); + currentTerm = pMsg->term; + } + if (pMsg->term == currentTerm && ths->state != TAOS_SYNC_STATE_LEADER) { syncIndexMgrSetRecvTime(ths->pNextIndex, &(pMsg->srcId), tsMs); resetElect = true; -- GitLab