[CP] diable schedule until related access finished

This commit is contained in:
simonjoylet
2024-02-26 07:18:35 +00:00
committed by ob-robot
parent 092e0202d9
commit 50e775cd5e
2 changed files with 4 additions and 0 deletions

View File

@ -2533,6 +2533,7 @@ int ObDDLScheduler::inner_schedule_ddl_task(ObDDLTask *ddl_task,
longops_added = false;
LOG_WARN("add task to longops mgr failed", K(tmp_ret));
}
ddl_task->disable_schedule();
if (OB_FAIL(task_queue_.push_task(ddl_task))) {
if (OB_ENTRY_EXIST != ret) {
LOG_WARN("push back task to task queue failed", K(ret));
@ -2546,6 +2547,7 @@ int ObDDLScheduler::inner_schedule_ddl_task(ObDDLTask *ddl_task,
if (OB_TMP_FAIL(add_sys_task(ddl_task))) {
LOG_WARN("add sys task failed", K(tmp_ret));
}
ddl_task->enable_schedule();
idler_.wakeup();
}
}

View File

@ -552,6 +552,8 @@ public:
virtual int collect_longops_stat(share::ObLongopsValue &value);
void calc_next_schedule_ts(const int ret_code, const int64_t total_task_cnt);
void disable_schedule() { next_schedule_ts_ = INT64_MAX; }
void enable_schedule() { next_schedule_ts_ = 0; }
bool need_schedule() { return next_schedule_ts_ <= ObTimeUtility::current_time(); }
bool is_replica_build_need_retry(const int ret_code);
int64_t get_execution_id() const;