Merge pull request #20346 from taosdata/FIX/TD-22572-main
enh: no need to wait for emptying apply queue in syncNodePreClose
This commit is contained in:
commit
a8dbfe9595
|
@ -124,7 +124,7 @@ void vmCloseVnode(SVnodeMgmt *pMgmt, SVnodeObj *pVnode, bool commitAndRemoveWal)
|
||||||
vmFreeQueue(pMgmt, pVnode);
|
vmFreeQueue(pMgmt, pVnode);
|
||||||
|
|
||||||
if (commitAndRemoveWal) {
|
if (commitAndRemoveWal) {
|
||||||
dInfo("vgId:%d, commit data", pVnode->vgId);
|
dInfo("vgId:%d, commit data for vnode split", pVnode->vgId);
|
||||||
vnodeSyncCommit(pVnode->pImpl);
|
vnodeSyncCommit(pVnode->pImpl);
|
||||||
vnodeBegin(pVnode->pImpl);
|
vnodeBegin(pVnode->pImpl);
|
||||||
dInfo("vgId:%d, commit data finished", pVnode->vgId);
|
dInfo("vgId:%d, commit data finished", pVnode->vgId);
|
||||||
|
|
|
@ -1082,21 +1082,15 @@ void syncNodePreClose(SSyncNode* pSyncNode) {
|
||||||
ASSERT(pSyncNode->pFsm != NULL);
|
ASSERT(pSyncNode->pFsm != NULL);
|
||||||
ASSERT(pSyncNode->pFsm->FpApplyQueueItems != NULL);
|
ASSERT(pSyncNode->pFsm->FpApplyQueueItems != NULL);
|
||||||
|
|
||||||
while (1) {
|
|
||||||
int32_t aqItems = pSyncNode->pFsm->FpApplyQueueItems(pSyncNode->pFsm);
|
|
||||||
sTrace("vgId:%d, pre close, %d items in apply queue", pSyncNode->vgId, aqItems);
|
|
||||||
if (aqItems == 0 || aqItems == -1) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
taosMsleep(20);
|
|
||||||
}
|
|
||||||
|
|
||||||
// stop elect timer
|
// stop elect timer
|
||||||
syncNodeStopElectTimer(pSyncNode);
|
syncNodeStopElectTimer(pSyncNode);
|
||||||
|
|
||||||
// stop heartbeat timer
|
// stop heartbeat timer
|
||||||
syncNodeStopHeartbeatTimer(pSyncNode);
|
syncNodeStopHeartbeatTimer(pSyncNode);
|
||||||
|
|
||||||
|
// stop ping timer
|
||||||
|
syncNodeStopPingTimer(pSyncNode);
|
||||||
|
|
||||||
// clean rsp
|
// clean rsp
|
||||||
syncRespCleanRsp(pSyncNode->pSyncRespMgr);
|
syncRespCleanRsp(pSyncNode->pSyncRespMgr);
|
||||||
}
|
}
|
||||||
|
@ -1120,10 +1114,11 @@ void syncNodeClose(SSyncNode* pSyncNode) {
|
||||||
if (pSyncNode == NULL) return;
|
if (pSyncNode == NULL) return;
|
||||||
sNInfo(pSyncNode, "sync close, node:%p", pSyncNode);
|
sNInfo(pSyncNode, "sync close, node:%p", pSyncNode);
|
||||||
|
|
||||||
|
syncRespCleanRsp(pSyncNode->pSyncRespMgr);
|
||||||
|
|
||||||
syncNodeStopPingTimer(pSyncNode);
|
syncNodeStopPingTimer(pSyncNode);
|
||||||
syncNodeStopElectTimer(pSyncNode);
|
syncNodeStopElectTimer(pSyncNode);
|
||||||
syncNodeStopHeartbeatTimer(pSyncNode);
|
syncNodeStopHeartbeatTimer(pSyncNode);
|
||||||
|
|
||||||
syncNodeLogReplMgrDestroy(pSyncNode);
|
syncNodeLogReplMgrDestroy(pSyncNode);
|
||||||
|
|
||||||
syncRespMgrDestroy(pSyncNode->pSyncRespMgr);
|
syncRespMgrDestroy(pSyncNode->pSyncRespMgr);
|
||||||
|
|
Loading…
Reference in New Issue