Return error code when freezer is offline
This commit is contained in:
@ -330,6 +330,7 @@ int ObFreezer::logstream_freeze(bool is_tenant_freeze)
|
|||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
LOG_WARN("[Freezer] not inited", K(ret), K(ls_id));
|
LOG_WARN("[Freezer] not inited", K(ret), K(ls_id));
|
||||||
} else if (OB_UNLIKELY(!enable_)) {
|
} else if (OB_UNLIKELY(!enable_)) {
|
||||||
|
ret = OB_NOT_RUNNING;
|
||||||
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
||||||
} else if (OB_FAIL(decide_max_decided_scn(max_decided_scn))) {
|
} else if (OB_FAIL(decide_max_decided_scn(max_decided_scn))) {
|
||||||
TRANS_LOG(WARN, "[Freezer] decide max decided log ts failure", K(ret), K(ls_id));
|
TRANS_LOG(WARN, "[Freezer] decide max decided log ts failure", K(ret), K(ls_id));
|
||||||
@ -469,6 +470,7 @@ int ObFreezer::tablet_freeze(const ObTabletID &tablet_id)
|
|||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
||||||
} else if (OB_UNLIKELY(!enable_)) {
|
} else if (OB_UNLIKELY(!enable_)) {
|
||||||
|
ret = OB_NOT_RUNNING;
|
||||||
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
||||||
} else if (OB_FAIL(guard.try_set_tablet_freeze_begin())) {
|
} else if (OB_FAIL(guard.try_set_tablet_freeze_begin())) {
|
||||||
// no need freeze now, a ls freeze is running or will be running
|
// no need freeze now, a ls freeze is running or will be running
|
||||||
@ -546,6 +548,7 @@ int ObFreezer::force_tablet_freeze(const ObTabletID &tablet_id)
|
|||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
||||||
} else if (OB_UNLIKELY(!enable_)) {
|
} else if (OB_UNLIKELY(!enable_)) {
|
||||||
|
ret = OB_NOT_RUNNING;
|
||||||
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
||||||
} else if (OB_FAIL(loop_set_freeze_flag())) {
|
} else if (OB_FAIL(loop_set_freeze_flag())) {
|
||||||
TRANS_LOG(WARN, "[Freezer] failed to set freeze_flag", K(ret), K(ls_id), K(tablet_id));
|
TRANS_LOG(WARN, "[Freezer] failed to set freeze_flag", K(ret), K(ls_id), K(tablet_id));
|
||||||
@ -689,6 +692,9 @@ int ObFreezer::tablet_freeze_for_replace_tablet_meta(const ObTabletID &tablet_id
|
|||||||
if (IS_NOT_INIT) {
|
if (IS_NOT_INIT) {
|
||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
TRANS_LOG(WARN, "[Freezer] not inited", K(ret), K(ls_id), K(tablet_id));
|
||||||
|
} else if (OB_UNLIKELY(!enable_)) {
|
||||||
|
ret = OB_NOT_RUNNING;
|
||||||
|
LOG_WARN("freezer is offline, can not freeze now", K(ret), K(ls_id));
|
||||||
} else if (OB_FAIL(guard.try_set_tablet_freeze_begin())) {
|
} else if (OB_FAIL(guard.try_set_tablet_freeze_begin())) {
|
||||||
// no need freeze now, a ls freeze is running or will be running
|
// no need freeze now, a ls freeze is running or will be running
|
||||||
ret = OB_SUCCESS;
|
ret = OB_SUCCESS;
|
||||||
|
@ -207,9 +207,18 @@ int ObTenantFreezer::ls_freeze_(ObLS *ls)
|
|||||||
}
|
}
|
||||||
} while (ret == OB_ENTRY_EXIST);
|
} while (ret == OB_ENTRY_EXIST);
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
|
const int64_t start = ObTimeUtility::current_time();
|
||||||
while (!ls->get_freezer()->is_ready_for_flush()) {
|
while (!ls->get_freezer()->is_ready_for_flush()) {
|
||||||
|
const int64_t cost_time = ObTimeUtility::current_time() - start;
|
||||||
|
if (cost_time > 5 * 1000 * 1000) {
|
||||||
|
if (TC_REACH_TIME_INTERVAL(5 * 1000 * 1000)) {
|
||||||
|
TRANS_LOG(WARN, "[TenantFreezer] cost too much time to wait ls ready_for_flush", K(ls->get_ls_id()), K(cost_time));
|
||||||
|
}
|
||||||
|
}
|
||||||
ob_usleep(100);
|
ob_usleep(100);
|
||||||
}
|
}
|
||||||
|
} else if (OB_NOT_RUNNING == ret) {
|
||||||
|
ret = OB_SUCCESS;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user