Merge pull request #24026 from taosdata/FEAT/TD-27125-3.0
enh: clear info data of snap sender and receiver at stop
This commit is contained in:
commit
661624cbc6
|
@ -107,6 +107,19 @@ void syncSnapBlockDestroy(void *ptr) {
|
||||||
taosMemoryFree(pBlk);
|
taosMemoryFree(pBlk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t snapshotSenderClearInfoData(SSyncSnapshotSender *pSender) {
|
||||||
|
if (pSender->snapshotParam.data) {
|
||||||
|
taosMemoryFree(pSender->snapshotParam.data);
|
||||||
|
pSender->snapshotParam.data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pSender->snapshot.data) {
|
||||||
|
taosMemoryFree(pSender->snapshot.data);
|
||||||
|
pSender->snapshot.data = NULL;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void snapshotSenderDestroy(SSyncSnapshotSender *pSender) {
|
void snapshotSenderDestroy(SSyncSnapshotSender *pSender) {
|
||||||
if (pSender == NULL) return;
|
if (pSender == NULL) return;
|
||||||
|
|
||||||
|
@ -121,10 +134,8 @@ void snapshotSenderDestroy(SSyncSnapshotSender *pSender) {
|
||||||
syncSnapBufferDestroy(&pSender->pSndBuf);
|
syncSnapBufferDestroy(&pSender->pSndBuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSender->snapshotParam.data) {
|
snapshotSenderClearInfoData(pSender);
|
||||||
taosMemoryFree(pSender->snapshotParam.data);
|
|
||||||
pSender->snapshotParam.data = NULL;
|
|
||||||
}
|
|
||||||
// free sender
|
// free sender
|
||||||
taosMemoryFree(pSender);
|
taosMemoryFree(pSender);
|
||||||
}
|
}
|
||||||
|
@ -209,6 +220,8 @@ void snapshotSenderStop(SSyncSnapshotSender *pSender, bool finish) {
|
||||||
|
|
||||||
syncSnapBufferReset(pSender->pSndBuf);
|
syncSnapBufferReset(pSender->pSndBuf);
|
||||||
|
|
||||||
|
snapshotSenderClearInfoData(pSender);
|
||||||
|
|
||||||
SRaftId destId = pSender->pSyncNode->replicasId[pSender->replicaIndex];
|
SRaftId destId = pSender->pSyncNode->replicasId[pSender->replicaIndex];
|
||||||
sSInfo(pSender, "snapshot sender stop, to dnode:%d, finish:%d", DID(&destId), finish);
|
sSInfo(pSender, "snapshot sender stop, to dnode:%d, finish:%d", DID(&destId), finish);
|
||||||
}
|
}
|
||||||
|
@ -419,6 +432,19 @@ SSyncSnapshotReceiver *snapshotReceiverCreate(SSyncNode *pSyncNode, SRaftId from
|
||||||
return pReceiver;
|
return pReceiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t snapshotReceiverClearInfoData(SSyncSnapshotReceiver *pReceiver) {
|
||||||
|
if (pReceiver->snapshotParam.data) {
|
||||||
|
taosMemoryFree(pReceiver->snapshotParam.data);
|
||||||
|
pReceiver->snapshotParam.data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pReceiver->snapshot.data) {
|
||||||
|
taosMemoryFree(pReceiver->snapshot.data);
|
||||||
|
pReceiver->snapshot.data = NULL;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void snapshotReceiverDestroy(SSyncSnapshotReceiver *pReceiver) {
|
void snapshotReceiverDestroy(SSyncSnapshotReceiver *pReceiver) {
|
||||||
if (pReceiver == NULL) return;
|
if (pReceiver == NULL) return;
|
||||||
|
|
||||||
|
@ -432,22 +458,13 @@ void snapshotReceiverDestroy(SSyncSnapshotReceiver *pReceiver) {
|
||||||
pReceiver->pWriter = NULL;
|
pReceiver->pWriter = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// free data of snapshot info
|
|
||||||
if (pReceiver->snapshotParam.data) {
|
|
||||||
taosMemoryFree(pReceiver->snapshotParam.data);
|
|
||||||
pReceiver->snapshotParam.data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pReceiver->snapshot.data) {
|
|
||||||
taosMemoryFree(pReceiver->snapshot.data);
|
|
||||||
pReceiver->snapshot.data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// free snap buf
|
// free snap buf
|
||||||
if (pReceiver->pRcvBuf) {
|
if (pReceiver->pRcvBuf) {
|
||||||
syncSnapBufferDestroy(&pReceiver->pRcvBuf);
|
syncSnapBufferDestroy(&pReceiver->pRcvBuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
snapshotReceiverClearInfoData(pReceiver);
|
||||||
|
|
||||||
// free receiver
|
// free receiver
|
||||||
taosMemoryFree(pReceiver);
|
taosMemoryFree(pReceiver);
|
||||||
}
|
}
|
||||||
|
@ -533,6 +550,8 @@ void snapshotReceiverStop(SSyncSnapshotReceiver *pReceiver) {
|
||||||
}
|
}
|
||||||
|
|
||||||
syncSnapBufferReset(pReceiver->pRcvBuf);
|
syncSnapBufferReset(pReceiver->pRcvBuf);
|
||||||
|
|
||||||
|
snapshotReceiverClearInfoData(pReceiver);
|
||||||
}
|
}
|
||||||
taosThreadMutexUnlock(&pReceiver->pRcvBuf->mutex);
|
taosThreadMutexUnlock(&pReceiver->pRcvBuf->mutex);
|
||||||
}
|
}
|
||||||
|
@ -664,7 +683,10 @@ static int32_t syncSnapReceiverExchgSnapInfo(SSyncNode *pSyncNode, SSyncSnapshot
|
||||||
memcpy(pInfo->data, pMsg->data, pMsg->dataLen);
|
memcpy(pInfo->data, pMsg->data, pMsg->dataLen);
|
||||||
|
|
||||||
// exchange snap info
|
// exchange snap info
|
||||||
pSyncNode->pFsm->FpGetSnapshotInfo(pSyncNode->pFsm, pInfo);
|
if (pSyncNode->pFsm->FpGetSnapshotInfo(pSyncNode->pFsm, pInfo) != 0) {
|
||||||
|
sRError(pReceiver, "failed to get snapshot info. type: %d", pMsg->payloadType);
|
||||||
|
goto _out;
|
||||||
|
}
|
||||||
SSyncTLV *datHead = pInfo->data;
|
SSyncTLV *datHead = pInfo->data;
|
||||||
if (datHead->typ != TDMT_SYNC_PREP_SNAPSHOT_REPLY) {
|
if (datHead->typ != TDMT_SYNC_PREP_SNAPSHOT_REPLY) {
|
||||||
sRError(pReceiver, "unexpected data typ in data of snapshot info. typ: %d", datHead->typ);
|
sRError(pReceiver, "unexpected data typ in data of snapshot info. typ: %d", datHead->typ);
|
||||||
|
|
Loading…
Reference in New Issue