fix basic_function unstable

This commit is contained in:
WenJinyu
2023-07-31 10:53:44 +00:00
committed by ob-robot
parent 6e1b94044f
commit 7768dc1f68
2 changed files with 6 additions and 43 deletions

View File

@ -1023,7 +1023,7 @@ int ObTabletStartTransferInHelper::create_transfer_in_tablets_(
ObLS *dest_ls = NULL;
ObLSService* ls_srv = nullptr;
ObArray<ObTabletID> tablet_id_array;
ObMigrationStatus migration_status = ObMigrationStatus::OB_MIGRATION_STATUS_MAX;
if ((!scn.is_valid() && for_replay) || !tx_start_transfer_in_info.is_valid()) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("create transfer in tablet get invalid argument", K(ret), K(scn), K(tx_start_transfer_in_info));
@ -1035,6 +1035,11 @@ int ObTabletStartTransferInHelper::create_transfer_in_tablets_(
} else if (OB_ISNULL(dest_ls = dest_ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("ls is NULL", KR(ret), KP(dest_ls));
} else if (CLICK_FAIL(dest_ls->get_migration_status(migration_status))) {
LOG_WARN("failed to get migration status", KR(ret), KP(dest_ls), "dest_ls_id", dest_ls->get_ls_id());
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_GC == migration_status) {
ret = OB_LS_WAITING_SAFE_DESTROY;
LOG_WARN("the migration status of transfer dest_ls is OB_MIGRATION_STATUS_GC", KR(ret), "dest_ls_id", dest_ls->get_ls_id());
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < tx_start_transfer_in_info.tablet_meta_list_.count(); ++i) {
MDS_TG(10_ms);
@ -1240,45 +1245,6 @@ int ObTabletStartTransferInHelper::on_replay(
return ret;
}
int ObTabletStartTransferInHelper::check_transfer_ls_migration_status_(const ObTXStartTransferInInfo &tx_start_transfer_in_info)
{
int ret = OB_SUCCESS;
ObLSHandle dest_ls_handle;
ObLSHandle src_ls_handle;
ObLS *dest_ls = NULL;
ObLS *src_ls = NULL;
ObLSService* ls_srv = nullptr;
ObMigrationStatus migrate_status;
if (!tx_start_transfer_in_info.is_valid()) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("create transfer in tablet get invalid argument", K(ret), K(tx_start_transfer_in_info));
} else if (OB_ISNULL(ls_srv = MTL(ObLSService*))) {
ret = OB_ERR_UNEXPECTED;
LOG_ERROR("ls srv should not be NULL", K(ret), KP(ls_srv));
} else if (OB_FAIL(ls_srv->get_ls(tx_start_transfer_in_info.src_ls_id_, src_ls_handle, ObLSGetMod::STORAGE_MOD))) {
LOG_WARN("failed to get ls", KR(ret), "src_ls_id", tx_start_transfer_in_info.src_ls_id_);
} else if (OB_ISNULL(src_ls = src_ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("ls is NULL", KR(ret), KP(src_ls));
} else if (OB_FAIL(src_ls->get_migration_status(migrate_status))) {
LOG_WARN("failed to get migration status", KR(ret), "src_ls_id", src_ls->get_ls_id());
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_GC == migrate_status) {
ret = OB_LS_WAITING_SAFE_DESTROY;
LOG_WARN("the migration status of transfer src_ls is OB_MIGRATION_STATUS_GC", KR(ret), "src_ls_id", src_ls->get_ls_id());
} else if (OB_FAIL(ls_srv->get_ls(tx_start_transfer_in_info.dest_ls_id_, dest_ls_handle, ObLSGetMod::STORAGE_MOD))) {
LOG_WARN("failed to get ls", KR(ret), "dest_ls_id", tx_start_transfer_in_info.dest_ls_id_);
} else if (OB_ISNULL(dest_ls = dest_ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("ls is NULL", KR(ret), KP(dest_ls));
} else if (OB_FAIL(dest_ls->get_migration_status(migrate_status))) {
LOG_WARN("failed to get migration status", KR(ret), KP(dest_ls), "dest_ls_id", dest_ls->get_ls_id());
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_GC == migrate_status) {
ret = OB_LS_WAITING_SAFE_DESTROY;
LOG_WARN("the migration status of transfer dest_ls is OB_MIGRATION_STATUS_GC", KR(ret), "dest_ls_id", dest_ls->get_ls_id());
}
return ret;
}
int ObTabletStartTransferInHelper::on_replay_success_(
const share::SCN &scn,
const ObTXStartTransferInInfo &tx_start_transfer_in_info,
@ -1309,8 +1275,6 @@ int ObTabletStartTransferInHelper::on_replay_success_(
LOG_WARN("on replay success get invalid argument", K(ret), K(scn), K(tx_start_transfer_in_info));
} else if (CLICK_FAIL(check_transfer_dest_tablets_(tx_start_transfer_in_info, for_replay))) {
LOG_WARN("failed to check transfer dest tablets", K(ret), K(tx_start_transfer_in_info));
} else if (CLICK_FAIL(check_transfer_ls_migration_status_(tx_start_transfer_in_info))) {
LOG_WARN("failed to check transfer ls migration status", K(ret), K(tx_start_transfer_in_info));
} else if (CLICK_FAIL(create_transfer_in_tablets_(scn, for_replay, tx_start_transfer_in_info, ctx))) {
LOG_WARN("failed to create transfer in tablets", K(ret), K(tx_start_transfer_in_info));
}

View File

@ -192,7 +192,6 @@ private:
bool &can_skip);
static int set_dest_ls_rebuild_(
const share::ObLSID &dest_ls_id);
static int check_transfer_ls_migration_status_(const ObTXStartTransferInInfo &tx_start_transfer_in_info);
private:
DISALLOW_COPY_AND_ASSIGN(ObTabletStartTransferInHelper);