From 7cda8db02065faf11ace80b4cc9ea43d7db65458 Mon Sep 17 00:00:00 2001 From: Xin Liao Date: Tue, 9 Jul 2024 17:01:04 +0800 Subject: [PATCH] [fix](load) The NodeChannel should be canceled when failed to add block #37500 (#37527) cherry pick from #37500 --- be/src/vec/sink/writer/vtablet_writer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/be/src/vec/sink/writer/vtablet_writer.cpp b/be/src/vec/sink/writer/vtablet_writer.cpp index c0f5bd8abc..5a061cc51d 100644 --- a/be/src/vec/sink/writer/vtablet_writer.cpp +++ b/be/src/vec/sink/writer/vtablet_writer.cpp @@ -516,8 +516,11 @@ Status VNodeChannel::add_block(vectorized::Block* block, const Payload* payload) } SCOPED_RAW_TIMER(&_stat.append_node_channel_ns); - RETURN_IF_ERROR( - block->append_to_block_by_selector(_cur_mutable_block.get(), *(payload->first))); + st = block->append_to_block_by_selector(_cur_mutable_block.get(), *(payload->first)); + if (!st.ok()) { + _cancel_with_msg(fmt::format("{}, err: {}", channel_info(), st.to_string())); + return st; + } for (auto tablet_id : payload->second) { _cur_add_block_request->add_tablet_ids(tablet_id); }