From 81589042330cbfce55a35df87ecff6abd9f06ca1 Mon Sep 17 00:00:00 2001 From: obdev Date: Tue, 14 Feb 2023 03:41:29 +0000 Subject: [PATCH] fix adjust_global_merge_info when max_frozen_status.frozen_scn_ = 1 --- src/rootserver/freeze/ob_major_merge_scheduler.cpp | 2 +- src/rootserver/freeze/ob_zone_merge_manager.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/rootserver/freeze/ob_major_merge_scheduler.cpp b/src/rootserver/freeze/ob_major_merge_scheduler.cpp index b5db9636c..f9230129b 100644 --- a/src/rootserver/freeze/ob_major_merge_scheduler.cpp +++ b/src/rootserver/freeze/ob_major_merge_scheduler.cpp @@ -314,7 +314,7 @@ int ObMajorMergeScheduler::do_one_round_major_merge(const int64_t expected_epoch // no new zone to merge LOG_INFO("no more zone need to merge", K_(tenant_id)); } else if (OB_FAIL(schedule_zones_to_merge(to_merge_zone, expected_epoch))) { - LOG_WARN("fail to get next merge zones", KR(ret), K(to_merge_zone), K(expected_epoch)); + LOG_WARN("fail to schedule zones to merge", KR(ret), K(to_merge_zone), K(expected_epoch)); } // Need to update_merge_status, even though to_merge_zone is empty. // E.g., in the 1st loop, already schedule all zones to merge, but not finish major merge. diff --git a/src/rootserver/freeze/ob_zone_merge_manager.cpp b/src/rootserver/freeze/ob_zone_merge_manager.cpp index 59f250e78..f5b7fd29d 100644 --- a/src/rootserver/freeze/ob_zone_merge_manager.cpp +++ b/src/rootserver/freeze/ob_zone_merge_manager.cpp @@ -915,11 +915,12 @@ int ObZoneMergeManagerBase::adjust_global_merge_info() } else { // Adjust global_merge_info in memory with (max_frozen_status.frozen_scn_ - 1). // So as to launch one major freeze with max_frozen_status.frozen_scn_. - inner_adjust_global_merge_info(SCN::minus(max_frozen_status.frozen_scn_, 1)); - } - if (OB_SUCC(ret)) { - LOG_INFO("succ to adjust global merge info", K_(tenant_id), "max_frozen_scn", - max_frozen_status.frozen_scn_); + // Note: only launch major freezes with frozen_scn > 1 + if (max_frozen_status.frozen_scn_ > SCN::base_scn()) { + inner_adjust_global_merge_info(SCN::minus(max_frozen_status.frozen_scn_, 1)); + LOG_INFO("succ to adjust global merge info", K_(tenant_id), "max_frozen_scn", + max_frozen_status.frozen_scn_, K_(global_merge_info)); + } } return ret; }