diff --git a/source/libs/stream/src/streamCheckpoint.c b/source/libs/stream/src/streamCheckpoint.c index e555db82f6..b490b0e02a 100644 --- a/source/libs/stream/src/streamCheckpoint.c +++ b/source/libs/stream/src/streamCheckpoint.c @@ -169,6 +169,8 @@ int32_t streamProcessCheckpointTriggerBlock(SStreamTask* pTask, SStreamDataBlock " recv expired checkpoint-trigger block, checkpointId:%" PRId64 " transId:%d, discard", id, vgId, pTask->chkInfo.checkpointId, checkpointId, transId); taosThreadMutexUnlock(&pTask->lock); + + streamFreeQitem((SStreamQueueItem*)pBlock); return TSDB_CODE_SUCCESS; } @@ -188,6 +190,8 @@ int32_t streamProcessCheckpointTriggerBlock(SStreamTask* pTask, SStreamDataBlock streamTaskOpenUpstreamInput(pTask, pBlock->srcTaskId); taosThreadMutexUnlock(&pTask->lock); + + streamFreeQitem((SStreamQueueItem*)pBlock); return TSDB_CODE_SUCCESS; } @@ -197,6 +201,8 @@ int32_t streamProcessCheckpointTriggerBlock(SStreamTask* pTask, SStreamDataBlock " discard", id, vgId, pActiveInfo->activeId, checkpointId); taosThreadMutexUnlock(&pTask->lock); + + streamFreeQitem((SStreamQueueItem*)pBlock); return TSDB_CODE_SUCCESS; } else { // checkpointId == pActiveInfo->activeId if (pActiveInfo->allUpstreamTriggerRecv == 1) { @@ -205,6 +211,7 @@ int32_t streamProcessCheckpointTriggerBlock(SStreamTask* pTask, SStreamDataBlock "checkpointId:%" PRId64 " transId:%d", id, vgId, checkpointId, transId); taosThreadMutexUnlock(&pTask->lock); + streamFreeQitem((SStreamQueueItem*)pBlock); return TSDB_CODE_SUCCESS; } @@ -219,6 +226,7 @@ int32_t streamProcessCheckpointTriggerBlock(SStreamTask* pTask, SStreamDataBlock pTask->id.idStr, p->upstreamTaskId, p->upstreamNodeId, p->checkpointId, p->recvTs); taosThreadMutexUnlock(&pTask->lock); + streamFreeQitem((SStreamQueueItem*)pBlock); return TSDB_CODE_SUCCESS; } }