You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2020/09/27 03:05:42 UTC
[hbase] branch branch-2 updated: HBASE-25088
CatalogFamilyFormat/MetaTableAccessor.parseRegionInfoFromRegionName
incorrectly setEndKey to regionId (#2462)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 6b93373 HBASE-25088 CatalogFamilyFormat/MetaTableAccessor.parseRegionInfoFromRegionName incorrectly setEndKey to regionId (#2462)
6b93373 is described below
commit 6b93373a0a88109b1701ad35a1895648c8916989
Author: Joseph295 <51...@qq.com>
AuthorDate: Sun Sep 27 11:05:16 2020 +0800
HBASE-25088 CatalogFamilyFormat/MetaTableAccessor.parseRegionInfoFromRegionName incorrectly setEndKey to regionId (#2462)
Signed-off-by: Duo Zhang <zh...@apache.org>
---
.../org/apache/hadoop/hbase/MetaTableAccessor.java | 7 +------
.../apache/hadoop/hbase/TestMetaTableAccessor.java | 23 ++++++++++++++++++++++
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
index 7cf6bb1..fc4ebc4 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
@@ -329,12 +329,7 @@ public class MetaTableAccessor {
long regionId = Long.parseLong(Bytes.toString(fields[2]));
int replicaId = fields.length > 3 ? Integer.parseInt(Bytes.toString(fields[3]), 16) : 0;
return RegionInfoBuilder.newBuilder(TableName.valueOf(fields[0]))
- .setStartKey(fields[1])
- .setEndKey(fields[2])
- .setSplit(false)
- .setRegionId(regionId)
- .setReplicaId(replicaId)
- .build();
+ .setStartKey(fields[1]).setRegionId(regionId).setReplicaId(replicaId).build();
}
/**
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
index 20e0edd..fae0ebc 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestMetaTableAccessor.java
@@ -404,6 +404,29 @@ public class TestMetaTableAccessor {
MetaTableAccessor.parseReplicaIdFromServerColumn(Bytes.toBytes(column6)));
}
+ /**
+ * The info we can get from the regionName is: table name, start key, regionId, replicaId.
+ */
+ @Test
+ public void testParseRegionInfoFromRegionName() throws IOException {
+ RegionInfo originalRegionInfo = RegionInfoBuilder.newBuilder(
+ TableName.valueOf(name.getMethodName())).setRegionId(999999L)
+ .setStartKey(Bytes.toBytes("2")).setEndKey(Bytes.toBytes("3"))
+ .setReplicaId(1).build();
+ RegionInfo newParsedRegionInfo = MetaTableAccessor
+ .parseRegionInfoFromRegionName(originalRegionInfo.getRegionName());
+ assertEquals("Parse TableName error", originalRegionInfo.getTable(),
+ newParsedRegionInfo.getTable());
+ assertEquals("Parse regionId error", originalRegionInfo.getRegionId(),
+ newParsedRegionInfo.getRegionId());
+ assertTrue("Parse startKey error", Bytes.equals(originalRegionInfo.getStartKey(),
+ newParsedRegionInfo.getStartKey()));
+ assertEquals("Parse replicaId error", originalRegionInfo.getReplicaId(),
+ newParsedRegionInfo.getReplicaId());
+ assertTrue("We can't parse endKey from regionName only",
+ Bytes.equals(HConstants.EMPTY_END_ROW, newParsedRegionInfo.getEndKey()));
+ }
+
@Test
public void testMetaReaderGetColumnMethods() {
assertArrayEquals(HConstants.SERVER_QUALIFIER, MetaTableAccessor.getServerColumn(0));