[CP] diable schedule until related access finished
This commit is contained in:
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user