fix(sync): close snapshot receiver in pre-close
This commit is contained in:
parent
3939c96a92
commit
a1ed4b334c
|
@ -606,16 +606,7 @@ void vnodeSyncPreClose(SVnode *pVnode) {
|
||||||
vInfo("vgId:%d, pre close sync", pVnode->config.vgId);
|
vInfo("vgId:%d, pre close sync", pVnode->config.vgId);
|
||||||
syncLeaderTransfer(pVnode->sync);
|
syncLeaderTransfer(pVnode->sync);
|
||||||
syncPreStop(pVnode->sync);
|
syncPreStop(pVnode->sync);
|
||||||
#if 0
|
|
||||||
while (syncSnapshotRecving(pVnode->sync)) {
|
|
||||||
vInfo("vgId:%d, snapshot is recving", pVnode->config.vgId);
|
|
||||||
taosMsleep(300);
|
|
||||||
}
|
|
||||||
while (syncSnapshotSending(pVnode->sync)) {
|
|
||||||
vInfo("vgId:%d, snapshot is sending", pVnode->config.vgId);
|
|
||||||
taosMsleep(300);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
taosThreadMutexLock(&pVnode->lock);
|
taosThreadMutexLock(&pVnode->lock);
|
||||||
if (pVnode->blocked) {
|
if (pVnode->blocked) {
|
||||||
vInfo("vgId:%d, post block after close sync", pVnode->config.vgId);
|
vInfo("vgId:%d, post block after close sync", pVnode->config.vgId);
|
||||||
|
|
|
@ -1221,6 +1221,26 @@ int32_t syncNodeStartStandBy(SSyncNode* pSyncNode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void syncNodePreClose(SSyncNode* pSyncNode) {
|
void syncNodePreClose(SSyncNode* pSyncNode) {
|
||||||
|
if (pSyncNode != NULL && pSyncNode->pFsm != NULL && 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) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
taosMsleep(20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pSyncNode->pNewNodeReceiver != NULL) {
|
||||||
|
if (snapshotReceiverIsStart(pSyncNode->pNewNodeReceiver)) {
|
||||||
|
snapshotReceiverForceStop(pSyncNode->pNewNodeReceiver);
|
||||||
|
}
|
||||||
|
|
||||||
|
snapshotReceiverDestroy(pSyncNode->pNewNodeReceiver);
|
||||||
|
pSyncNode->pNewNodeReceiver = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// stop elect timer
|
// stop elect timer
|
||||||
syncNodeStopElectTimer(pSyncNode);
|
syncNodeStopElectTimer(pSyncNode);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue