This is an automated email from the ASF dual-hosted git repository. dataroaring pushed a commit to branch branch-4.0-preview in repository https://gitbox.apache.org/repos/asf/doris.git
commit bf5f5d3b90d66e1f5ca7458d2c347140ed4473e8 Author: zzzxl <33418555+zzzxl1...@users.noreply.github.com> AuthorDate: Thu Apr 25 11:10:50 2024 +0800 [fix](inverted index) the rowset may be deleted and become nullptr.(#33878) 1. between compaction prepare and execute, a rowset may be deleted by cold down, leading to a nullptr exception 2. intermittent bug that cannot be replicated with a test case --- be/src/olap/compaction.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/be/src/olap/compaction.cpp b/be/src/olap/compaction.cpp index dec407894ef..66a4544fde2 100644 --- a/be/src/olap/compaction.cpp +++ b/be/src/olap/compaction.cpp @@ -529,11 +529,9 @@ Status Compaction::do_inverted_index_compaction() { // src index files // format: rowsetId_segmentId std::vector<std::string> src_index_files(src_segment_num); - std::vector<RowsetId> src_rowset_ids; for (const auto& m : src_seg_to_id_map) { std::pair<RowsetId, uint32_t> p = m.first; src_index_files[m.second] = p.first.to_string() + "_" + std::to_string(p.second); - src_rowset_ids.push_back(p.first); } // dest index files @@ -671,9 +669,8 @@ Status Compaction::do_inverted_index_compaction() { // if index properties are different, index compaction maybe needs to be skipped. bool is_continue = false; std::optional<std::map<std::string, std::string>> first_properties; - for (const auto& rowset_id : src_rowset_ids) { - auto rowset_ptr = _tablet->get_rowset(rowset_id); - const auto* tablet_index = rowset_ptr->tablet_schema()->get_inverted_index(col); + for (const auto& rowset : _input_rowsets) { + const auto* tablet_index = rowset->tablet_schema()->get_inverted_index(col); const auto& properties = tablet_index->properties(); if (!first_properties.has_value()) { first_properties = properties; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org