diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index f6925946e9b5d674ab761971ae490887781fd17c..85668068a50aada227891846e3caf6e5b81dd550 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -1040,6 +1040,7 @@ void syncNodeClose(SSyncNode* pSyncNode) { ret = raftStoreClose(pSyncNode->pRaftStore); ASSERT(ret == 0); + pSyncNode->pRaftStore = NULL; syncRespMgrDestroy(pSyncNode->pSyncRespMgr); pSyncNode->pSyncRespMgr = NULL; @@ -2174,10 +2175,18 @@ static void syncNodeEqPeerHeartbeatTimer(void* param, void* tmrId) { SSyncNode* pSyncNode = pData->pSyncNode; SSyncTimer* pSyncTimer = pData->pTimer; + if (pSyncNode == NULL) { + return; + } + if (pSyncNode->state != TAOS_SYNC_STATE_LEADER) { return; } + if (pSyncNode->pRaftStore == NULL) { + return; + } + // sNTrace(pSyncNode, "eq peer hb timer"); int64_t timerLogicClock = atomic_load_64(&pSyncTimer->logicClock);