fix palf handle hold while sys ls gc
This commit is contained in:
@ -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_))) {
|
||||
|
||||
Reference in New Issue
Block a user