diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp index aed65ee231..b981858965 100644 --- a/be/src/olap/tablet.cpp +++ b/be/src/olap/tablet.cpp @@ -2296,23 +2296,22 @@ Status Tablet::_follow_cooldowned_data() { return Status::InternalError("tablet not running"); } - for (auto& [v, rs] : _rs_version_map) { - if (v.second == cooldowned_version) { - version_aligned = true; - break; - } - } - if (!version_aligned) { - return Status::InternalError("cooldowned version is not aligned"); - } for (auto& [v, rs] : _rs_version_map) { if (v.second <= cooldowned_version) { overlap_rowsets.push_back(rs); + if (!version_aligned && v.second == cooldowned_version) { + version_aligned = true; + } } else if (!rs->is_local()) { return Status::InternalError( "cooldowned version larger than that to follow"); } } + + if (!version_aligned) { + return Status::InternalError("cooldowned version is not aligned"); + } + std::sort(overlap_rowsets.begin(), overlap_rowsets.end(), Rowset::comparator); auto rs_pb_it = cooldown_meta_pb.rs_metas().begin(); auto rs_it = overlap_rowsets.begin();