From 0cada3f81dadcbf5c263aef146c476d07d6368f7 Mon Sep 17 00:00:00 2001 From: yixiutt <102007456+yixiutt@users.noreply.github.com> Date: Tue, 4 Apr 2023 12:27:13 +0800 Subject: [PATCH] [Enhancement](compaction) return error instead of core when ctx not valid (#18363) --- be/src/vec/olap/vertical_merge_iterator.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/be/src/vec/olap/vertical_merge_iterator.cpp b/be/src/vec/olap/vertical_merge_iterator.cpp index e6f692410d..1f2e682f3d 100644 --- a/be/src/vec/olap/vertical_merge_iterator.cpp +++ b/be/src/vec/olap/vertical_merge_iterator.cpp @@ -542,6 +542,10 @@ Status VerticalMaskMergeIterator::unique_key_next_row(vectorized::IteratorRowRef auto& ctx = _origin_iter_ctx[order]; RETURN_IF_ERROR(ctx->init(_opts)); DCHECK(ctx->valid()); + if (!ctx->valid()) { + LOG(INFO) << "VerticalMergeIteratorContext not valid"; + return Status::InternalError("VerticalMergeIteratorContext not valid"); + } if (UNLIKELY(ctx->is_first_row()) && !row_source.agg_flag()) { // first row in block, don't call ctx->advance @@ -576,6 +580,10 @@ Status VerticalMaskMergeIterator::next_batch(Block* block) { auto& ctx = _origin_iter_ctx[order]; RETURN_IF_ERROR(ctx->init(_opts)); DCHECK(ctx->valid()); + if (!ctx->valid()) { + LOG(INFO) << "VerticalMergeIteratorContext not valid"; + return Status::InternalError("VerticalMergeIteratorContext not valid"); + } // find max same source count in cur ctx size_t limit = std::min(ctx->remain_rows(), _block_row_max - rows);