[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