diff --git a/src/storage/high_availability/ob_ls_migration.cpp b/src/storage/high_availability/ob_ls_migration.cpp index 5131b7501..30a9875ba 100644 --- a/src/storage/high_availability/ob_ls_migration.cpp +++ b/src/storage/high_availability/ob_ls_migration.cpp @@ -1043,7 +1043,6 @@ int ObStartMigrationTask::deal_with_local_ls_() ObRole role; int64_t proposal_id = 0; ObLSMeta local_ls_meta; - DEBUG_SYNC(BEFORE_MIGRATION_DISABLE_VOTE); if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("start migration task do not init", K(ret)); diff --git a/src/storage/high_availability/ob_ls_prepare_migration.cpp b/src/storage/high_availability/ob_ls_prepare_migration.cpp index 3b749081c..633ffccb9 100755 --- a/src/storage/high_availability/ob_ls_prepare_migration.cpp +++ b/src/storage/high_availability/ob_ls_prepare_migration.cpp @@ -725,12 +725,14 @@ int ObStartPrepareMigrationTask::process() LOG_WARN("failed to deal with local ls", K(ret), K(*ctx_)); } else if (OB_FAIL(wait_transfer_tablets_ready_())) { LOG_WARN("failed to wait transfer tablets ready", K(ret), KPC(ctx_)); - } else if (OB_FAIL(remove_local_incomplete_tablets_())) { - LOG_WARN("failed to remove local incomplete tablets", K(ret), KPC(ctx_)); } //TODO(muwei.ym) delete it in 4.2 RC3 /* - else if (OB_FAIL(wait_log_replay_sync_())) { + else if (OB_FAIL(remove_local_incomplete_tablets_())) { + LOG_WARN("failed to remove local incomplete tablets", K(ret), KPC(ctx_)); + } else if (OB_FAIL(remove_local_incomplete_tablets_())) { + LOG_WARN("failed to remove local incomplete tablets", K(ret), KPC(ctx_)); + } else if (OB_FAIL(wait_log_replay_sync_())) { LOG_WARN("failed to wait log replay sync", K(ret), KPC(ctx_)); } else if (OB_FAIL(wait_ls_checkpoint_scn_push_())) { LOG_WARN("failed to wait ls checkpoint ts push", K(ret), KPC(ctx_)); diff --git a/src/storage/high_availability/ob_rebuild_service.cpp b/src/storage/high_availability/ob_rebuild_service.cpp index edeaab68d..6210891bc 100644 --- a/src/storage/high_availability/ob_rebuild_service.cpp +++ b/src/storage/high_availability/ob_rebuild_service.cpp @@ -18,6 +18,7 @@ #include "rootserver/ob_rs_event_history_table_operator.h" #include "observer/ob_server.h" #include "logservice/ob_log_service.h" +#include "observer/ob_server_event_history_table_operator.h" using namespace oceanbase; using namespace share; @@ -845,25 +846,42 @@ int ObLSRebuildMgr::do_with_init_status_(const ObLSRebuildInfo &rebuild_info) if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("ls rebuild mgr do not init", K(ret)); - } else if (!rebuild_info.is_valid() || ObLSRebuildStatus::INIT != rebuild_info.status_) { - ret = OB_INVALID_ARGUMENT; - LOG_WARN("do with none status get invalid argument", K(ret), K(rebuild_info)); - } else if (OB_ISNULL(ls = ls_handle_.get_ls())) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("ls should not be NULL", K(ret), KP(ls), K(rebuild_info)); } else { - ROOTSERVICE_EVENT_ADD("disaster_recovery", "start_rebuild_ls_replica", - "tenant_id", tenant_id, - "ls_id", rebuild_ctx_.ls_id_, - "task_id", rebuild_ctx_.task_id_, - "source", MYADDR, - "destination", MYADDR, - "comment", ""); + if (!rebuild_info.is_valid() || ObLSRebuildStatus::INIT != rebuild_info.status_) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("do with none status get invalid argument", K(ret), K(rebuild_info)); + } else if (OB_ISNULL(ls = ls_handle_.get_ls())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("ls should not be NULL", K(ret), KP(ls), K(rebuild_info)); + } else { + ROOTSERVICE_EVENT_ADD("disaster_recovery", "start_rebuild_ls_replica", + "tenant_id", tenant_id, + "ls_id", rebuild_ctx_.ls_id_, + "task_id", rebuild_ctx_.task_id_, + "source", MYADDR, + "destination", MYADDR, + "comment", ""); + DEBUG_SYNC(BEFORE_MIGRATION_DISABLE_VOTE); - if (OB_FAIL(ls->disable_vote(need_check_log_missing))) { - LOG_WARN("failed to disable vote", K(ret), KPC(ls), K(rebuild_info)); - } else if (OB_FAIL(switch_next_status_(rebuild_info, ret))) { - LOG_WARN("failed to switch next status", K(ret), K(rebuild_info)); + if (OB_FAIL(ls->disable_vote(need_check_log_missing))) { + LOG_WARN("failed to disable vote", K(ret), KPC(ls), K(rebuild_info)); + } + + if (OB_FAIL(ret)) { + SERVER_EVENT_ADD("storage_ha", "rebuild_disable_vote_failed", + "tenant_id", tenant_id, + "ls_id", rebuild_ctx_.ls_id_.id(), + "task_id", rebuild_ctx_.task_id_, + "destination", MYADDR, + "type", rebuild_info.type_, + "result", ret, + "REBUILD_LS_OP"); + } + } + + if (OB_SUCCESS != (tmp_ret = switch_next_status_(rebuild_info, ret))) { + ret = OB_SUCCESS == ret ? tmp_ret : ret; + LOG_WARN("failed to switch next status", K(ret), K(tmp_ret), K(rebuild_info)); if (OB_SUCCESS != (tmp_ret = ls->enable_vote())) { LOG_ERROR("failed to enable vote", K(tmp_ret), K(ret), K(rebuild_info), K(rebuild_ctx_)); } diff --git a/src/storage/high_availability/ob_storage_ha_dag.cpp b/src/storage/high_availability/ob_storage_ha_dag.cpp index 72299de8a..32cb854a6 100755 --- a/src/storage/high_availability/ob_storage_ha_dag.cpp +++ b/src/storage/high_availability/ob_storage_ha_dag.cpp @@ -536,7 +536,7 @@ void ObHATabletGroupCtx::reuse() ObHATabletGroupMgr::ObHATabletGroupMgr() : is_inited_(false), lock_(), - allocator_("HATGMgr"), + allocator_("HATGMgr", OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()), tablet_group_ctx_array_(), index_(0) {