From b6d3d2322ccee0bef8d9c32d78a7c63cbf33be77 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 30 Nov 2022 11:02:07 +0800 Subject: [PATCH] fix: cannot close vnode while transferring snapshot --- source/dnode/vnode/src/vnd/vnodeSync.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/dnode/vnode/src/vnd/vnodeSync.c b/source/dnode/vnode/src/vnd/vnodeSync.c index 6c205b5522..ad6f153aca 100644 --- a/source/dnode/vnode/src/vnd/vnodeSync.c +++ b/source/dnode/vnode/src/vnd/vnodeSync.c @@ -515,6 +515,16 @@ void vnodeSyncPreClose(SVnode *pVnode) { vInfo("vgId:%d, pre close sync", pVnode->config.vgId); syncLeaderTransfer(pVnode->sync); syncPreStop(pVnode->sync); + + while (!syncSnapshotRecving(pVnode->sync)) { + vInfo("vgId:%s, snapshot is recving"); + taosMsleep(300); + } + while (!syncSnapshotSending(pVnode->sync)) { + vInfo("vgId:%s, snapshot is sending"); + taosMsleep(300); + } + taosThreadMutexLock(&pVnode->lock); if (pVnode->blocked) { vInfo("vgId:%d, post block after close sync", pVnode->config.vgId); -- GitLab