From 3054574bc1020012713a3da63d79fccbb8339d57 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 8 Jun 2023 17:40:02 +0800 Subject: [PATCH] [fix](load) fix ctx nullptr core in flush_single_memtable (#20573) --- be/src/olap/rowset/beta_rowset_writer.cpp | 4 +++- be/src/olap/rowset/rowset_writer.h | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp b/be/src/olap/rowset/beta_rowset_writer.cpp index 4e462f1e4b..7f330a80b7 100644 --- a/be/src/olap/rowset/beta_rowset_writer.cpp +++ b/be/src/olap/rowset/beta_rowset_writer.cpp @@ -494,7 +494,9 @@ Status BetaRowsetWriter::flush_single_memtable(const vectorized::Block* block, i int32_t segment_id = writer->get_segment_id(); RETURN_IF_ERROR(_add_block(block, &writer)); RETURN_IF_ERROR(_flush_segment_writer(&writer, flush_size)); - RETURN_IF_ERROR(ctx->generate_delete_bitmap(segment_id)); + if (ctx != nullptr && ctx->generate_delete_bitmap) { + RETURN_IF_ERROR(ctx->generate_delete_bitmap(segment_id)); + } RETURN_IF_ERROR(_segcompaction_if_necessary()); return Status::OK(); } diff --git a/be/src/olap/rowset/rowset_writer.h b/be/src/olap/rowset/rowset_writer.h index 3ccd481ec7..aea4a05bcc 100644 --- a/be/src/olap/rowset/rowset_writer.h +++ b/be/src/olap/rowset/rowset_writer.h @@ -41,9 +41,7 @@ struct FlushContext { TabletSchemaSPtr flush_schema = nullptr; const vectorized::Block* block = nullptr; std::optional segment_id = std::nullopt; - std::function generate_delete_bitmap = [](int32_t segment_id) { - return Status::OK(); - }; + std::function generate_delete_bitmap; }; class RowsetWriter {