diff --git a/src/storage/ls/ob_ls.cpp b/src/storage/ls/ob_ls.cpp index 8dd9f957e3..6e1d0e7b25 100644 --- a/src/storage/ls/ob_ls.cpp +++ b/src/storage/ls/ob_ls.cpp @@ -1206,7 +1206,7 @@ int ObLS::replay_get_tablet(const common::ObTabletID &tablet_id, } } else { ObTabletTxMultiSourceDataUnit tx_data; - if (OB_FAIL(tablet_handle.get_obj()->get_tx_data(tx_data))) { + if (OB_FAIL(tablet_handle.get_obj()->get_tx_data(tx_data, false/*check_valid*/))) { LOG_WARN("failed to get tablet tx data", KR(ret), K(tablet_handle)); } else if (ObTabletStatus::CREATING == tx_data.tablet_status_) { ret = OB_EAGAIN; diff --git a/src/storage/tablet/ob_tablet.cpp b/src/storage/tablet/ob_tablet.cpp index 9badfd7c5a..f8c8d8cb73 100644 --- a/src/storage/tablet/ob_tablet.cpp +++ b/src/storage/tablet/ob_tablet.cpp @@ -3046,7 +3046,7 @@ int ObTablet::inner_get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data, bool &ex return ret; } -int ObTablet::get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data) const +int ObTablet::get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data, const bool check_valid) const { int ret = OB_SUCCESS; const uint64_t tenant_id = MTL_ID(); @@ -3058,7 +3058,7 @@ int ObTablet::get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data) const LOG_WARN("not inited", K(ret), K_(is_inited), K(tenant_id), K(ls_id), K(tablet_id)); } else if (OB_FAIL(inner_get_tx_data(tx_data, exist_on_memtable))) { LOG_WARN("fail to inner get tx data", K(ret)); - } else if (OB_UNLIKELY(!tx_data.is_valid())) { + } else if (check_valid && OB_UNLIKELY(!tx_data.is_valid())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error, tx data is invalid", K(ret), K(tenant_id), K(ls_id), K(tablet_id), K(exist_on_memtable), K(tx_data)); diff --git a/src/storage/tablet/ob_tablet.h b/src/storage/tablet/ob_tablet.h index 710f7fc789..b6f941a5ee 100644 --- a/src/storage/tablet/ob_tablet.h +++ b/src/storage/tablet/ob_tablet.h @@ -240,7 +240,7 @@ public: // multi-source data operation int check_tx_data(bool &is_valid) const; - int get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data) const; + int get_tx_data(ObTabletTxMultiSourceDataUnit &tx_data, const bool check_valid = true) const; int get_ddl_data(ObTabletBindingInfo &ddl_data) const; int get_tablet_status(ObTabletStatus::Status &tablet_status);