ddl not record warning of entry not exist in dag warning history
This commit is contained in:
		@ -2099,6 +2099,9 @@ int ObDDLScheduler::on_column_checksum_calc_reply(
 | 
				
			|||||||
      }))) {
 | 
					      }))) {
 | 
				
			||||||
    LOG_WARN("failed to modify task", K(ret));
 | 
					    LOG_WARN("failed to modify task", K(ret));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  if (OB_ENTRY_NOT_EXIST == ret) {
 | 
				
			||||||
 | 
					    ret = OB_NEED_RETRY;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  LOG_INFO("receive column checksum response", K(ret), K(tablet_id), K(task_key), K(ret_code));
 | 
					  LOG_INFO("receive column checksum response", K(ret), K(tablet_id), K(task_key), K(ret_code));
 | 
				
			||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2167,6 +2170,9 @@ int ObDDLScheduler::on_sstable_complement_job_reply(
 | 
				
			|||||||
      }))) {
 | 
					      }))) {
 | 
				
			||||||
    LOG_WARN("failed to modify task", K(ret));
 | 
					    LOG_WARN("failed to modify task", K(ret));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  if (OB_ENTRY_NOT_EXIST == ret) {
 | 
				
			||||||
 | 
					    ret = OB_NEED_RETRY;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -79,7 +79,7 @@ private:
 | 
				
			|||||||
        || common::OB_TRANS_CTX_NOT_EXIST == ret_code;
 | 
					        || common::OB_TRANS_CTX_NOT_EXIST == ret_code;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  static bool is_retry(const int ret_code) {
 | 
					  static bool is_retry(const int ret_code) {
 | 
				
			||||||
    return common::OB_EAGAIN == ret_code || common::OB_DDL_SCHEMA_VERSION_NOT_MATCH == ret_code || common::OB_TASK_EXPIRED == ret_code
 | 
					    return common::OB_EAGAIN == ret_code || common::OB_DDL_SCHEMA_VERSION_NOT_MATCH == ret_code || common::OB_TASK_EXPIRED == ret_code || common::OB_NEED_RETRY == ret_code
 | 
				
			||||||
        || common::OB_ERR_SHARED_LOCK_CONFLICT == ret_code || common::OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH == ret_code || common::OB_SCHEMA_EAGAIN == ret_code
 | 
					        || common::OB_ERR_SHARED_LOCK_CONFLICT == ret_code || common::OB_ERR_WAIT_REMOTE_SCHEMA_REFRESH == ret_code || common::OB_SCHEMA_EAGAIN == ret_code
 | 
				
			||||||
        || common::OB_ERR_REMOTE_SCHEMA_NOT_FULL == ret_code || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT == ret_code || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT == ret_code
 | 
					        || common::OB_ERR_REMOTE_SCHEMA_NOT_FULL == ret_code || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT == ret_code || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT == ret_code
 | 
				
			||||||
        || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT == ret_code || common::OB_TRANS_STMT_NEED_RETRY == ret_code || common::OB_SCHEMA_NOT_UPTODATE == ret_code
 | 
					        || common::OB_ERR_EXCLUSIVE_LOCK_CONFLICT_NOWAIT == ret_code || common::OB_TRANS_STMT_NEED_RETRY == ret_code || common::OB_SCHEMA_NOT_UPTODATE == ret_code
 | 
				
			||||||
 | 
				
			|||||||
@ -803,6 +803,13 @@ int ObUniqueCheckingDag::fill_dag_key(char *buf, const int64_t buf_len) const
 | 
				
			|||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ObUniqueCheckingDag::ignore_warning()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return OB_EAGAIN == dag_ret_
 | 
				
			||||||
 | 
					    || OB_NEED_RETRY == dag_ret_
 | 
				
			||||||
 | 
					    || OB_TASK_EXPIRED == dag_ret_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ObUniqueCheckingDag::operator==(const ObIDag &other) const
 | 
					bool ObUniqueCheckingDag::operator==(const ObIDag &other) const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int tmp_ret = OB_SUCCESS;
 | 
					  int tmp_ret = OB_SUCCESS;
 | 
				
			||||||
 | 
				
			|||||||
@ -179,6 +179,7 @@ public:
 | 
				
			|||||||
  common::ObTabletID get_tablet_id() const { return tablet_id_; }
 | 
					  common::ObTabletID get_tablet_id() const { return tablet_id_; }
 | 
				
			||||||
  uint64_t get_tenant_id() const { return tenant_id_; }
 | 
					  uint64_t get_tenant_id() const { return tenant_id_; }
 | 
				
			||||||
  share::ObLSID get_ls_id() const { return ls_id_; }
 | 
					  share::ObLSID get_ls_id() const { return ls_id_; }
 | 
				
			||||||
 | 
					  virtual bool ignore_warning() override;
 | 
				
			||||||
  virtual int fill_comment(char *buf, const int64_t buf_len) const override;
 | 
					  virtual int fill_comment(char *buf, const int64_t buf_len) const override;
 | 
				
			||||||
  virtual int fill_dag_key(char *buf, const int64_t buf_len) const override;
 | 
					  virtual int fill_dag_key(char *buf, const int64_t buf_len) const override;
 | 
				
			||||||
  virtual lib::Worker::CompatMode get_compat_mode() const override
 | 
					  virtual lib::Worker::CompatMode get_compat_mode() const override
 | 
				
			||||||
 | 
				
			|||||||
@ -383,6 +383,13 @@ int ObComplementDataDag::create_first_task()
 | 
				
			|||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ObComplementDataDag::ignore_warning()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return OB_EAGAIN == dag_ret_
 | 
				
			||||||
 | 
					    || OB_NEED_RETRY == dag_ret_
 | 
				
			||||||
 | 
					    || OB_TASK_EXPIRED == dag_ret_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int ObComplementDataDag::prepare_context()
 | 
					int ObComplementDataDag::prepare_context()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int ret = OB_SUCCESS;
 | 
					  int ret = OB_SUCCESS;
 | 
				
			||||||
 | 
				
			|||||||
@ -153,6 +153,7 @@ public:
 | 
				
			|||||||
  virtual uint64_t get_consumer_group_id() const override
 | 
					  virtual uint64_t get_consumer_group_id() const override
 | 
				
			||||||
  { return consumer_group_id_; }
 | 
					  { return consumer_group_id_; }
 | 
				
			||||||
  virtual int create_first_task() override;
 | 
					  virtual int create_first_task() override;
 | 
				
			||||||
 | 
					  virtual bool ignore_warning() override;
 | 
				
			||||||
  // report replica build status to RS.
 | 
					  // report replica build status to RS.
 | 
				
			||||||
  int report_replica_build_status();
 | 
					  int report_replica_build_status();
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
 | 
				
			|||||||
@ -201,7 +201,8 @@ bool ObDDLTableMergeDag::ignore_warning()
 | 
				
			|||||||
  return OB_LS_NOT_EXIST == dag_ret_
 | 
					  return OB_LS_NOT_EXIST == dag_ret_
 | 
				
			||||||
    || OB_TABLET_NOT_EXIST == dag_ret_
 | 
					    || OB_TABLET_NOT_EXIST == dag_ret_
 | 
				
			||||||
    || OB_TASK_EXPIRED == dag_ret_
 | 
					    || OB_TASK_EXPIRED == dag_ret_
 | 
				
			||||||
    || OB_EAGAIN == dag_ret_;
 | 
					    || OB_EAGAIN == dag_ret_
 | 
				
			||||||
 | 
					    || OB_NEED_RETRY == dag_ret_;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/******************             ObDDLTableDumpTask             *****************/
 | 
					/******************             ObDDLTableDumpTask             *****************/
 | 
				
			||||||
@ -268,6 +269,9 @@ int ObDDLTableDumpTask::process()
 | 
				
			|||||||
    ObArray<ObITable *> candidate_sstables;
 | 
					    ObArray<ObITable *> candidate_sstables;
 | 
				
			||||||
    if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->get_freezed_ddl_kv(freeze_scn_, ddl_kv_handle))) {
 | 
					    if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->get_freezed_ddl_kv(freeze_scn_, ddl_kv_handle))) {
 | 
				
			||||||
      LOG_WARN("get ddl kv handle failed", K(ret), K(freeze_scn_));
 | 
					      LOG_WARN("get ddl kv handle failed", K(ret), K(freeze_scn_));
 | 
				
			||||||
 | 
					      if (OB_ENTRY_NOT_EXIST == ret) {
 | 
				
			||||||
 | 
					        ret = OB_NEED_RETRY; // dag is async, the ddl kv may be dumped, no need record in dag warning history
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    } else if (OB_ISNULL(ddl_kv = static_cast<ObDDLKV *>(ddl_kv_handle.get_table()))) {
 | 
					    } else if (OB_ISNULL(ddl_kv = static_cast<ObDDLKV *>(ddl_kv_handle.get_table()))) {
 | 
				
			||||||
      ret = OB_ERR_UNEXPECTED;
 | 
					      ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
      LOG_WARN("get ddl kv failed", K(ret));
 | 
					      LOG_WARN("get ddl kv failed", K(ret));
 | 
				
			||||||
@ -370,6 +374,9 @@ int ObDDLTableMergeTask::process()
 | 
				
			|||||||
      LOG_INFO("tablet me says with major but no major, meaning its a migrated deleted tablet, skip");
 | 
					      LOG_INFO("tablet me says with major but no major, meaning its a migrated deleted tablet, skip");
 | 
				
			||||||
    } else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->get_ddl_param(ddl_param))) {
 | 
					    } else if (OB_FAIL(ddl_kv_mgr_handle.get_obj()->get_ddl_param(ddl_param))) {
 | 
				
			||||||
      LOG_WARN("get tablet ddl param failed", K(ret));
 | 
					      LOG_WARN("get tablet ddl param failed", K(ret));
 | 
				
			||||||
 | 
					      if (OB_STATE_NOT_MATCH == ret) {
 | 
				
			||||||
 | 
					        ret = OB_NEED_RETRY;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    } else if (merge_param_.start_scn_ > SCN::min_scn() && merge_param_.start_scn_ < ddl_param.start_scn_) {
 | 
					    } else if (merge_param_.start_scn_ > SCN::min_scn() && merge_param_.start_scn_ < ddl_param.start_scn_) {
 | 
				
			||||||
      ret = OB_TASK_EXPIRED;
 | 
					      ret = OB_TASK_EXPIRED;
 | 
				
			||||||
      LOG_INFO("ddl merge task expired, do nothing", K(merge_param_), "new_start_scn", ddl_param.start_scn_);
 | 
					      LOG_INFO("ddl merge task expired, do nothing", K(merge_param_), "new_start_scn", ddl_param.start_scn_);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user