ddl not record warning of entry not exist in dag warning history

This commit is contained in:
simonjoylet
2023-04-06 15:11:00 +00:00
committed by ob-robot
parent 667cbe6e84
commit b969710b6f
7 changed files with 31 additions and 2 deletions

View File

@ -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;
} }

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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:

View File

@ -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_);