clear prohibit medium flag no matter status of scheduler tablet medium

This commit is contained in:
obdev
2024-02-09 03:00:47 +00:00
committed by ob-robot
parent f9b0d031d9
commit 60f98f97fc

View File

@ -695,7 +695,7 @@ int ObProhibitScheduleMediumMap::add_flag(const ObTabletID &tablet_id, const Pro
}
} else { // tmp_flag == input_flag
ret = OB_ERR_UNEXPECTED;
LOG_TRACE("flag in already exist", K(ret), K(tablet_id), K(tmp_flag), K(input_flag));
LOG_WARN("flag in already exist", K(ret), K(tablet_id), K(tmp_flag), K(input_flag));
}
}
return ret;
@ -891,7 +891,7 @@ int ObTenantTabletScheduler::tablet_start_schedule_medium(const ObTabletID &tabl
tablet_could_schedule_medium = false;
ret = OB_SUCCESS;
} else {
LOG_WARN("failed to add flag for tablet schedule medium", K(ret));
LOG_WARN("failed to add flag for tablet schedule medium", K(ret), K(tablet_id));
}
} else {
tablet_could_schedule_medium = true;
@ -1545,6 +1545,7 @@ int ObTenantTabletScheduler::schedule_ls_medium_merge(
tablet_need_freeze_flag = false;
// ATTENTION!!! load weak ts before get tablet
const share::SCN &weak_read_ts = ls.get_ls_wrs_handler()->get_ls_weak_read_ts();
tablet_could_schedule_medium = false;
if (OB_FAIL(medium_ls_tablet_iter_.get_next_tablet(tablet_handle))) {
if (OB_ITER_END == ret) {
ret = OB_SUCCESS;
@ -1566,20 +1567,20 @@ int ObTenantTabletScheduler::schedule_ls_medium_merge(
} else if (FALSE_IT(tablet_id = tablet->get_tablet_meta().tablet_id_)) {
} else if (tablet_id.is_ls_inner_tablet()) {
// do nothing
} else if (FALSE_IT(tablet_could_schedule_medium = false)) {
} else if (is_leader && could_major_merge
&& OB_TMP_FAIL(tablet_start_schedule_medium(tablet_id, tablet_could_schedule_medium))) {
LOG_WARN("failed to set start schedule medium", K(ret), K(tmp_ret), K(ls_id));
LOG_WARN("failed to set start schedule medium", K(ret), K(tmp_ret), K(ls_id), K(tablet_id));
} else if (FALSE_IT(report_blocking_medium(is_leader, tablet_could_schedule_medium, could_major_merge, ls_id))) {
} else if (OB_TMP_FAIL(schedule_tablet_medium(
ls, tablet_handle, major_frozen_scn, weak_read_ts,
could_major_merge, tablet_could_schedule_medium, merge_version, enable_adaptive_compaction,
is_leader, tablet_merge_finish, tablet_need_freeze_flag, tablet_time_guard))) {
LOG_WARN("failed to schedule tablet medium", KR(tmp_ret), K(ls_id), K(tablet_id));
} else if (tablet_could_schedule_medium
}
if (tablet_could_schedule_medium
&& OB_TMP_FAIL(clear_prohibit_medium_flag(tablet_id, ObProhibitScheduleMediumMap::ProhibitFlag::MEDIUM))) {
// clear flags set by tablet_start_schedule_medium
LOG_WARN("failed to clear prohibit schedule medium flag", K(tmp_ret), K(ret), K(ls_id));
LOG_WARN("failed to clear prohibit schedule medium flag", K(tmp_ret), K(ret), K(ls_id), K(tablet_id));
}
medium_ls_tablet_iter_.update_merge_finish(tablet_merge_finish);
if (tablet_need_freeze_flag) {