fix admin merge about expected_epoch == -1

This commit is contained in:
LiefB 2023-10-23 12:09:55 +00:00 committed by ob-robot
parent 98d35eeeb0
commit b7d2c5af75
2 changed files with 13 additions and 4 deletions

View File

@ -449,7 +449,7 @@ int ObMajorFreezeHelper::do_one_tenant_admin_merge(
LOG_WARN("tenant_admin_merge rpc failed", KR(ret), K(tenant_id), K(leader), K(admin_type));
} else if (FALSE_IT(ret = resp.err_code_)) {
} else if (OB_FAIL(ret)) {
if (OB_LEADER_NOT_EXIST == ret) {
if (OB_LEADER_NOT_EXIST == ret || OB_EAGAIN == ret) {
const int64_t RESERVED_TIME_US = 600 * 1000; // 600 ms
const int64_t timeout_remain_us = THIS_WORKER.get_timeout_remain();
const int64_t idle_time_us = 200 * 1000 * (i + 1);

View File

@ -249,7 +249,10 @@ 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();
if (OB_FAIL(zone_merge_mgr_.suspend_merge(expected_epoch))) {
if (-1 == expected_epoch) {
ret = OB_EAGAIN;
LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id));
} else if (OB_FAIL(zone_merge_mgr_.suspend_merge(expected_epoch))) {
LOG_WARN("fail to suspend merge", KR(ret), K_(tenant_id), K(expected_epoch));
}
}
@ -269,7 +272,10 @@ 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();
if (OB_FAIL(zone_merge_mgr_.resume_merge(expected_epoch))) {
if (-1 == expected_epoch) {
ret = OB_EAGAIN;
LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id));
} else if (OB_FAIL(zone_merge_mgr_.resume_merge(expected_epoch))) {
LOG_WARN("fail to resume merge", KR(ret), K_(tenant_id), K(expected_epoch));
}
}
@ -290,7 +296,10 @@ 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();
if (OB_FAIL(ObTabletMetaTableCompactionOperator::batch_update_status(tenant_id_,
if (-1 == expected_epoch) {
ret = OB_EAGAIN;
LOG_WARN("epoch has not been updated, will retry", KR(ret), K_(tenant_id));
} else if (OB_FAIL(ObTabletMetaTableCompactionOperator::batch_update_status(tenant_id_,
expected_epoch))) {
LOG_WARN("fail to batch update status", KR(ret), K_(tenant_id), K(expected_epoch));
} else if (OB_FAIL(zone_merge_mgr_.set_merge_error(error_type, expected_epoch))) {