From 751a7680c5bc0de083196cd8dc7063dfc24bd9d1 Mon Sep 17 00:00:00 2001 From: Pxl Date: Wed, 2 Aug 2023 18:12:34 +0800 Subject: [PATCH] [Bug](exchange) fix core dump on send_local_block (#22494) fix core dump on send_local_block --- be/src/vec/sink/vdata_stream_sender.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/be/src/vec/sink/vdata_stream_sender.cpp b/be/src/vec/sink/vdata_stream_sender.cpp index d1c768a5e6..d7ccbade32 100644 --- a/be/src/vec/sink/vdata_stream_sender.cpp +++ b/be/src/vec/sink/vdata_stream_sender.cpp @@ -224,7 +224,9 @@ Status Channel::close_wait(RuntimeState* state) { _need_close = false; return st; } - _serializer->reset_block(); + if (_serializer) { + _serializer->reset_block(); + } return Status::OK(); } @@ -647,14 +649,14 @@ Status VDataStreamSender::try_close(RuntimeState* state, Status exec_status) { RETURN_IF_ERROR(_get_next_available_buffer(&block_holder)); { SCOPED_CONSUME_MEM_TRACKER(_mem_tracker.get()); - auto block = _serializer->get_block()->to_block(); + Block block = _serializer->get_block()->to_block(); RETURN_IF_ERROR(_serializer->serialize_block(&block, block_holder->get_block(), _channels.size())); Status status; for (auto channel : _channels) { if (!channel->is_receiver_eof()) { if (channel->is_local()) { - status = channel->send_local_block(block); + status = channel->send_local_block(&block); } else { SCOPED_CONSUME_MEM_TRACKER(_mem_tracker.get()); status = channel->send_block(block_holder, false);