Fix storage ha iterator get transfer abort tablet bug
This commit is contained in:
@ -52,6 +52,7 @@ ERRSIM_POINT_DEF(EN_UPDATE_ALL_TABLET_TO_LS_FAILED);
|
|||||||
ERRSIM_POINT_DEF(EN_UPDATE_TRANSFER_TASK_FAILED);
|
ERRSIM_POINT_DEF(EN_UPDATE_TRANSFER_TASK_FAILED);
|
||||||
ERRSIM_POINT_DEF(EN_START_CAN_NOT_RETRY);
|
ERRSIM_POINT_DEF(EN_START_CAN_NOT_RETRY);
|
||||||
ERRSIM_POINT_DEF(EN_MAKE_SRC_LS_REBUILD);
|
ERRSIM_POINT_DEF(EN_MAKE_SRC_LS_REBUILD);
|
||||||
|
ERRSIM_POINT_DEF(EN_INSERT_TRANSFER_START_FAILED);
|
||||||
|
|
||||||
ObTransferHandler::ObTransferHandler()
|
ObTransferHandler::ObTransferHandler()
|
||||||
: is_inited_(false),
|
: is_inited_(false),
|
||||||
@ -481,6 +482,14 @@ int ObTransferHandler::do_with_start_status_(const share::ObTransferTaskInfo &ta
|
|||||||
} else if (OB_FAIL(do_trans_transfer_start_(task_info, config_version, timeout_ctx, trans))) {
|
} else if (OB_FAIL(do_trans_transfer_start_(task_info, config_version, timeout_ctx, trans))) {
|
||||||
LOG_WARN("failed to do trans transfer start", K(ret), K(task_info));
|
LOG_WARN("failed to do trans transfer start", K(ret), K(task_info));
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef ERRSIM
|
||||||
|
if (OB_SUCC(ret)) {
|
||||||
|
ret = EN_INSERT_TRANSFER_START_FAILED ? : OB_SUCCESS;
|
||||||
|
if (OB_FAIL(ret)) {
|
||||||
|
SERVER_EVENT_SYNC_ADD("transfer_errsim", "transfer_start_failed", "result", ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
DEBUG_SYNC(BEFORE_TRANSFER_START_COMMIT);
|
DEBUG_SYNC(BEFORE_TRANSFER_START_COMMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6065,6 +6065,7 @@ int ObLSTabletService::ha_scan_all_tablets(const HandleTabletMetaFunc &handle_ta
|
|||||||
ObTabletHandle tablet_handle;
|
ObTabletHandle tablet_handle;
|
||||||
ObTablet *tablet = nullptr;
|
ObTablet *tablet = nullptr;
|
||||||
obrpc::ObCopyTabletInfo tablet_info;
|
obrpc::ObCopyTabletInfo tablet_info;
|
||||||
|
ObTabletCreateDeleteMdsUserData user_data;
|
||||||
|
|
||||||
while (OB_SUCC(ret)) {
|
while (OB_SUCC(ret)) {
|
||||||
tablet_info.reset();
|
tablet_info.reset();
|
||||||
@ -6078,6 +6079,13 @@ int ObLSTabletService::ha_scan_all_tablets(const HandleTabletMetaFunc &handle_ta
|
|||||||
} else if (OB_ISNULL(tablet = tablet_handle.get_obj())) {
|
} else if (OB_ISNULL(tablet = tablet_handle.get_obj())) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("tablet is nullptr", K(ret), K(tablet_handle));
|
LOG_WARN("tablet is nullptr", K(ret), K(tablet_handle));
|
||||||
|
} else if (OB_FAIL(tablet->ObITabletMdsInterface::get_tablet_status(
|
||||||
|
share::SCN::max_scn(), user_data, ObTabletCommon::DEFAULT_GET_TABLET_NO_WAIT))) {
|
||||||
|
//TODO(muwei.ym) CAN NOT USE this condition when MDS supports uncommitted transaction
|
||||||
|
LOG_WARN("failed to get tx data", K(ret), KPC(tablet));
|
||||||
|
if (OB_EMPTY_RESULT == ret) {
|
||||||
|
ret = OB_SUCCESS;
|
||||||
|
}
|
||||||
} else if (OB_FAIL(tablet->build_migration_tablet_param(tablet_info.param_))) {
|
} else if (OB_FAIL(tablet->build_migration_tablet_param(tablet_info.param_))) {
|
||||||
LOG_WARN("failed to build migration tablet param", K(ret));
|
LOG_WARN("failed to build migration tablet param", K(ret));
|
||||||
} else if (OB_FAIL(tablet->get_ha_sstable_size(tablet_info.data_size_))) {
|
} else if (OB_FAIL(tablet->get_ha_sstable_size(tablet_info.data_size_))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user