fix palf handle hold while sys ls gc

This commit is contained in:
maosy
2023-08-23 10:10:26 +00:00
committed by ob-robot
parent 931ebb3ad3
commit 6f363580e2
2 changed files with 12 additions and 10 deletions

View File

@ -147,18 +147,12 @@ void ObRecoveryLSService::do_work()
LOG_WARN("not init", K(ret), K(inited_), KP(proxy_));
} else {
ObLSRecoveryStatOperator ls_recovery;
palf::PalfBufferIterator iterator;
palf::PalfHandleGuard palf_handle_guard;
palf::PalfBufferIterator iterator;//can not use without palf_guard
int tmp_ret = OB_SUCCESS;
int64_t idle_time_us = 100 * 1000L;
SCN start_scn;
last_report_ts_ = OB_INVALID_TIMESTAMP;
uint64_t thread_idx = get_thread_idx();
if (0 != thread_idx) {
if (OB_FAIL(init_palf_handle_guard_(palf_handle_guard))) {
LOG_WARN("failed to init palf handle guard", KR(ret));
}
}
while (!has_set_stop() && OB_SUCC(ret)) {
ObCurTraceId::init(GCONF.self_addr_);
ObTenantInfoLoader *tenant_info_loader = MTL(ObTenantInfoLoader*);
@ -200,7 +194,10 @@ void ObRecoveryLSService::do_work()
}
} else {
DEBUG_SYNC(STOP_RECOVERY_LS_THREAD1);
if (!start_scn.is_valid()) {
palf::PalfHandleGuard palf_handle_guard;
if (OB_FAIL(init_palf_handle_guard_(palf_handle_guard))) {
LOG_WARN("failed to init palf handle guard", KR(ret));
} else if (!start_scn.is_valid()) {
ObLSRecoveryStat ls_recovery_stat;
if (OB_FAIL(ls_recovery.get_ls_recovery_stat(tenant_id_,
SYS_LS, false, ls_recovery_stat, *proxy_))) {