You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ga...@apache.org on 2023/04/21 01:07:06 UTC
[doris] branch master updated: [MemLeak](pipeline) fix mem leak by exchange node in pipeline (#18864)
This is an automated email from the ASF dual-hosted git repository.
gabriellee pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new eb93afc614 [MemLeak](pipeline) fix mem leak by exchange node in pipeline (#18864)
eb93afc614 is described below
commit eb93afc61484454ae1516345b6a038087d264d52
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Fri Apr 21 09:06:55 2023 +0800
[MemLeak](pipeline) fix mem leak by exchange node in pipeline (#18864)
---
be/src/vec/sink/vdata_stream_sender.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/be/src/vec/sink/vdata_stream_sender.h b/be/src/vec/sink/vdata_stream_sender.h
index 2e78d2dbf9..cfbd47846f 100644
--- a/be/src/vec/sink/vdata_stream_sender.h
+++ b/be/src/vec/sink/vdata_stream_sender.h
@@ -444,6 +444,9 @@ public:
// rpc (or OK if there wasn't one that hasn't been reported yet).
// if batch is nullptr, send the eof packet
Status send_block(PBlock* block, bool eos = false) override {
+ std::unique_ptr<PBlock> pblock_ptr;
+ pblock_ptr.reset(block);
+
if (eos) {
if (_eos_send) {
return Status::OK();
@@ -452,8 +455,7 @@ public:
}
}
if (eos || block->column_metas_size()) {
- RETURN_IF_ERROR(_buffer->add_block(
- {this, block ? std::make_unique<PBlock>(*block) : nullptr, eos}));
+ RETURN_IF_ERROR(_buffer->add_block({this, std::move(pblock_ptr), eos}));
}
return Status::OK();
}
@@ -478,15 +480,14 @@ public:
return send_local_block(eos);
}
- PBlock* block_ptr = nullptr;
+ auto block_ptr = std::make_unique<PBlock>();
if (_mutable_block) {
- block_ptr = new PBlock(); // TODO: need a pool of PBlock()
auto block = _mutable_block->to_block();
- RETURN_IF_ERROR(_parent->serialize_block(&block, block_ptr));
+ RETURN_IF_ERROR(_parent->serialize_block(&block, block_ptr.get()));
block.clear_column_data();
_mutable_block->set_muatable_columns(block.mutate_columns());
}
- RETURN_IF_ERROR(send_block(block_ptr, eos));
+ RETURN_IF_ERROR(send_block(block_ptr.release(), eos));
return Status::OK();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org