diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index 9d749d8e58..f1aa9312c6 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -1294,10 +1294,6 @@ void syncNodeClose(SSyncNode* pSyncNode) { syncNodeStopElectTimer(pSyncNode); syncNodeStopHeartbeatTimer(pSyncNode); - if (pSyncNode->pFsm != NULL) { - taosMemoryFree(pSyncNode->pFsm); - } - for (int32_t i = 0; i < TSDB_MAX_REPLICA; ++i) { if ((pSyncNode->senders)[i] != NULL) { sSTrace((pSyncNode->senders)[i], "snapshot sender destroy while close, data:%p", (pSyncNode->senders)[i]); @@ -1320,6 +1316,10 @@ void syncNodeClose(SSyncNode* pSyncNode) { pSyncNode->pNewNodeReceiver = NULL; } + if (pSyncNode->pFsm != NULL) { + taosMemoryFree(pSyncNode->pFsm); + } + taosMemoryFree(pSyncNode); }