From 18c05aa76535600688ea117b581876558472dbf6 Mon Sep 17 00:00:00 2001 From: oceanoverflow Date: Thu, 8 Feb 2024 08:42:42 +0000 Subject: [PATCH] fix rs merge tablet info report -9011 --- .../backup/ob_backup_data_set_task_mgr.cpp | 9 +++-- src/storage/backup/ob_backup_task.cpp | 35 +++++++++++-------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp b/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp index f341ba862..c102797a2 100644 --- a/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp +++ b/src/rootserver/backup/ob_backup_data_set_task_mgr.cpp @@ -1604,8 +1604,13 @@ int ObBackupSetTaskMgr::convert_task_type_(const ObIArray &l new_ls_task.result_ = OB_SUCCESS; new_ls_task.dst_.reset(); new_ls_task.task_trace_id_.reset(); - new_ls_task.retry_id_ = 0; - new_ls_task.turn_id_ = 1; + // backup meta finish need reuse the turn id and retry id to merge tablet infos + // so that the turn id and retry id of backup meta finish + // is the same as the turn id and retry id of backup meta + if (ObBackupDataTaskType::Type::BACKUP_META_FINISH != type.type_) { + new_ls_task.retry_id_ = 0; + new_ls_task.turn_id_ = 1; + } if (OB_FAIL(backup_service_->check_leader())) { LOG_WARN("failed to check leader", K(ret)); } else if (OB_FAIL(ObBackupLSTaskOperator::report_ls_task(trans_, new_ls_task))) { diff --git a/src/storage/backup/ob_backup_task.cpp b/src/storage/backup/ob_backup_task.cpp index 1c22cf941..2e4cebe60 100644 --- a/src/storage/backup/ob_backup_task.cpp +++ b/src/storage/backup/ob_backup_task.cpp @@ -3665,7 +3665,27 @@ int ObLSBackupMetaTask::process() DEBUG_SYNC(BEFORE_BACKUP_1001_META); } #endif - if (IS_NOT_INIT) { +#ifdef ERRSIM + if (OB_SUCC(ret)) { + if (ls_id.is_sys_ls()) { + ret = OB_E(EventTable::EN_BACKUP_SYS_META_TASK_FAILED) OB_SUCCESS; + } else { + ret = OB_E(EventTable::EN_BACKUP_USER_META_TASK_FAILED) OB_SUCCESS; + } + if (OB_FAIL(ret)) { + SERVER_EVENT_SYNC_ADD("backup_errsim", "backup_meta", + "tenant_id", param_.tenant_id_, + "task_id", param_.job_desc_.task_id_, + "ls_id", param_.ls_id_.id(), + "turn_id", param_.turn_id_, + "retry_id", param_.retry_id_); + LOG_WARN("errsim backup meta task failed", K(ret)); + } + } +#endif + if (OB_FAIL(ret)) { + // do nothing + } else if (IS_NOT_INIT) { ret = OB_NOT_INIT; LOG_WARN("backup meta task do not init", K(ret)); } else { @@ -3682,19 +3702,6 @@ int ObLSBackupMetaTask::process() } } -#ifdef ERRSIM - if (OB_SUCC(ret)) { - if (ls_id.is_sys_ls()) { - ret = OB_E(EventTable::EN_BACKUP_SYS_META_TASK_FAILED) OB_SUCCESS; - } else { - ret = OB_E(EventTable::EN_BACKUP_USER_META_TASK_FAILED) OB_SUCCESS; - } - if (OB_FAIL(ret)) { - SERVER_EVENT_SYNC_ADD("backup_errsim", "backup_meta"); - LOG_WARN("errsim backup meta task failed", K(ret)); - } - } -#endif if (OB_FAIL(ret)) { bool is_set = false; ls_backup_ctx_->set_result_code(ret, is_set);