[BUG.FIX] fix -4165 while getting min end scn

This commit is contained in:
Tyshawn
2024-02-10 00:05:45 +00:00
committed by ob-robot
parent 3faeeadc83
commit c37f9de8d2

View File

@ -904,7 +904,18 @@ int ObTenantMetaMemMgr::get_min_end_scn_from_single_tablet(ObTablet *tablet,
} else if (OB_FAIL(tablet->fetch_table_store(table_store_wrapper))) { } else if (OB_FAIL(tablet->fetch_table_store(table_store_wrapper))) {
LOG_WARN("fail to fetch table store", K(ret)); LOG_WARN("fail to fetch table store", K(ret));
} else if (OB_FAIL(tablet->ObITabletMdsInterface::get_latest_tablet_status(user_data, is_committed))) { } else if (OB_FAIL(tablet->ObITabletMdsInterface::get_latest_tablet_status(user_data, is_committed))) {
LOG_WARN("get tablet status failed", KR(ret), KP(tablet)); if (OB_EMPTY_RESULT == ret) {
// When OB_EMPTY_RESULT is returned, there are two situations that need to be eaten, as follows:
// - The one is that transfer transaction is aborted.
// - The second is that the tablet is just been created and the tablet status has been also written.
//
// In the above two cases, the old version tablet is not allowed and will not exist, and it
// is not allowed to be read without being queried, so it is safe to return max scn here.
min_end_scn.set_max();
ret = OB_SUCCESS;
} else {
LOG_WARN("get tablet status failed", KR(ret), KP(tablet));
}
} else if (ObTabletStatus::TRANSFER_IN == user_data.tablet_status_) { } else if (ObTabletStatus::TRANSFER_IN == user_data.tablet_status_) {
/* when tablet transfer with active tx, dest_ls may recycle active transaction tx_data /* when tablet transfer with active tx, dest_ls may recycle active transaction tx_data
* because no uncommitted data depend it, but src_ls's tablet may has uncommitted data depend this tx_data * because no uncommitted data depend it, but src_ls's tablet may has uncommitted data depend this tx_data