add defend for backup to check against medium info
This commit is contained in:
@ -107,6 +107,11 @@ int ObBackupUtils::get_sstables_by_data_type(const storage::ObTabletHandle &tabl
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("last major sstable should not be null", K(ret), K(tablet_handle));
|
||||
}
|
||||
} else if (tablet_handle.get_obj()->get_medium_compaction_info_list().get_last_compaction_scn() > 0
|
||||
&& tablet_handle.get_obj()->get_medium_compaction_info_list().get_last_compaction_scn() != last_major_sstable_ptr->get_snapshot_version()) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("medium list is invalid for last major sstable", K(ret), "medium_list", tablet_handle.get_obj()->get_medium_compaction_info_list(),
|
||||
KPC(last_major_sstable_ptr), K(tablet_handle));
|
||||
} else if (OB_FAIL(sstable_array.push_back(last_major_sstable_ptr))) {
|
||||
LOG_WARN("failed to push back", K(ret), KPC(last_major_sstable_ptr));
|
||||
}
|
||||
@ -1864,7 +1869,7 @@ int ObBackupTabletProvider::hold_tablet_handle_(
|
||||
}
|
||||
|
||||
int ObBackupTabletProvider::fetch_tablet_sstable_array_(const common::ObTabletID &tablet_id,
|
||||
storage::ObTabletHandle &tablet_handle, const share::ObBackupDataType &backup_data_type,
|
||||
const storage::ObTabletHandle &tablet_handle, const share::ObBackupDataType &backup_data_type,
|
||||
common::ObIArray<storage::ObITable *> &sstable_array)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
@ -275,7 +275,7 @@ private:
|
||||
const common::ObTabletID &tablet_id, share::ObBackupSkippedType &skipped_type);
|
||||
int report_tablet_skipped_(const common::ObTabletID &tablet_id, const share::ObBackupSkippedType &skipped_type);
|
||||
int hold_tablet_handle_(const common::ObTabletID &tablet_id, storage::ObTabletHandle &tablet_handle);
|
||||
int fetch_tablet_sstable_array_(const common::ObTabletID &tablet_id, storage::ObTabletHandle &tablet_handle,
|
||||
int fetch_tablet_sstable_array_(const common::ObTabletID &tablet_id, const storage::ObTabletHandle &tablet_handle,
|
||||
const share::ObBackupDataType &backup_data_type, common::ObIArray<storage::ObITable *> &sstable_array);
|
||||
int prepare_tablet_logic_id_reader_(const common::ObTabletID &tablet_id, const storage::ObTabletHandle &tablet_handle,
|
||||
const storage::ObITable::TableKey &table_key, const blocksstable::ObSSTable &sstable,
|
||||
|
||||
Reference in New Issue
Block a user