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:
parent
57cba05d09
commit
aa0fa58d06
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue