From d3d8f764a0af323f7baa1c55f733d2b363302da1 Mon Sep 17 00:00:00 2001 From: LiefB <954800091@qq.com> Date: Tue, 7 Nov 2023 11:13:06 +0000 Subject: [PATCH] fix mysqltest about clear_merge_error in case of restart --- src/rootserver/freeze/ob_tenant_major_freeze.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rootserver/freeze/ob_tenant_major_freeze.cpp b/src/rootserver/freeze/ob_tenant_major_freeze.cpp index a25a1cdc4..912e5b353 100644 --- a/src/rootserver/freeze/ob_tenant_major_freeze.cpp +++ b/src/rootserver/freeze/ob_tenant_major_freeze.cpp @@ -221,6 +221,8 @@ int ObTenantMajorFreeze::suspend_merge() LOG_WARN("fail to try reload zone_merge_mgr", KR(ret), K_(tenant_id)); } else { const int64_t expected_epoch = merge_scheduler_.get_epoch(); + // in case of observer start or restart, before the MajorMergeScheduler background thread + // successfully update freeze_service_epoch, the epoch in memory is equal to -1. if (-1 == expected_epoch) { ret = OB_EAGAIN; LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id)); @@ -244,6 +246,8 @@ int ObTenantMajorFreeze::resume_merge() LOG_WARN("fail to try reload zone_merge_mgr", KR(ret), K_(tenant_id)); } else { const int64_t expected_epoch = merge_scheduler_.get_epoch(); + // in case of observer start or restart, before the MajorMergeScheduler background thread + // successfully update freeze_service_epoch, the epoch in memory is equal to -1. if (-1 == expected_epoch) { ret = OB_EAGAIN; LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id)); @@ -268,6 +272,8 @@ int ObTenantMajorFreeze::clear_merge_error() LOG_WARN("fail to try reload zone_merge_mgr", KR(ret), K_(tenant_id)); } else { const int64_t expected_epoch = merge_scheduler_.get_epoch(); + // in case of observer start or restart, before the MajorMergeScheduler background thread + // successfully update freeze_service_epoch, the epoch in memory is equal to -1. if (-1 == expected_epoch) { ret = OB_EAGAIN; LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id));