HBASE-27251 Rolling back from 2.5.0-SNAPSHOT to 2.4.13 fails due to 'File does not exist: /hbase/MasterData/data/master/store/.initialized/.regioninfo' (#4663)

Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
huaxiangsun 2022-07-28 10:42:14 -07:00 committed by GitHub
parent 57cba05d09
commit aa0fa58d06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 3 deletions

View File

@ -225,9 +225,11 @@ public final class MasterRegion {
FileSystem walFs, Path walRootDir, WALFactory walFactory, MasterRegionWALRoller walRoller, FileSystem walFs, Path walRootDir, WALFactory walFactory, MasterRegionWALRoller walRoller,
String serverName) throws IOException { String serverName) throws IOException {
Path tableDir = CommonFSUtils.getTableDir(rootDir, td.getTableName()); Path tableDir = CommonFSUtils.getTableDir(rootDir, td.getTableName());
Path regionDir = // on branch-2, the RegionInfo.isEncodedRegionName will returns true for .initializing and
fs.listStatus(tableDir, p -> RegionInfo.isEncodedRegionName(Bytes.toBytes(p.getName())))[0] // .initialized, see HBASE-25368. Since RegionInfo is IA.Public, changing the implementation may
.getPath(); // raise compatibility concerns, so here we just skip them by our own.
Path regionDir = fs.listStatus(tableDir, p -> !p.getName().startsWith(".")
&& RegionInfo.isEncodedRegionName(Bytes.toBytes(p.getName())))[0].getPath();
RegionInfo regionInfo = HRegionFileSystem.loadRegionInfoFileContent(fs, regionDir); RegionInfo regionInfo = HRegionFileSystem.loadRegionInfoFileContent(fs, regionDir);
Path walRegionDir = FSUtils.getRegionDirFromRootDir(walRootDir, regionInfo); Path walRegionDir = FSUtils.getRegionDirFromRootDir(walRootDir, regionInfo);