[ https://issues.apache.org/jira/browse/HBASE-22477?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16850791#comment-16850791 ]
Wellington Chevreuil commented on HBASE-22477: ---------------------------------------------- {quote}The unrelated change is used to trigger the UTs in hbase-server module.{quote} Not sure I followed. I was mentioning the "for test" comment on the apache disclaimer message. {quote}This patch just changes the behavior for meta region to the same with other regions.{quote} Got it. Would you think an additional unit test enforcing this behaviour be worth it? > Throwing exception when meta region is not in OPEN state in client registry > may crash a master > ---------------------------------------------------------------------------------------------- > > Key: HBASE-22477 > URL: https://issues.apache.org/jira/browse/HBASE-22477 > Project: HBase > Issue Type: Bug > Components: Client, master, meta > Reporter: Duo Zhang > Assignee: Duo Zhang > Priority: Major > Attachments: HBASE-22477-test.patch > > > {noformat} > 2019-05-26 17:10:31,195 ERROR [master/asf906:0:becomeActiveMaster] > helpers.MarkerIgnoringBase(159): Failed to become active master > org.apache.hadoop.hbase.client.RetriesExhaustedException: Cannot get the > location for replica0 of region for in hbase:meta > at > org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:335) > at > org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:153) > at > org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:58) > at > org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithoutRetries(RpcRetryingCallerImpl.java:192) > at > org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:263) > at > org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:405) > at > org.apache.hadoop.hbase.client.ClientScanner.nextWithSyncCache(ClientScanner.java:285) > at > org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:564) > at > org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:766) > at > org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:734) > at > org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:690) > at > org.apache.hadoop.hbase.MetaTableAccessor.fullScanRegions(MetaTableAccessor.java:220) > at > org.apache.hadoop.hbase.master.assignment.RegionStateStore.visitMeta(RegionStateStore.java:77) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.loadMeta(AssignmentManager.java:1294) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.joinCluster(AssignmentManager.java:1255) > at > org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:1100) > at > org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2375) > at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:605) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.io.IOException: Meta region is in state OPENING > at > org.apache.hadoop.hbase.client.ZKAsyncRegistry.lambda$getMetaRegionLocation$1(ZKAsyncRegistry.java:162) > at > org.apache.hadoop.hbase.util.FutureUtils.lambda$addListener$0(FutureUtils.java:70) > at > java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) > at > java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) > at > java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) > at > java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) > at > org.apache.hadoop.hbase.client.ZKAsyncRegistry.lambda$getAndConvert$0(ZKAsyncRegistry.java:81) > at > org.apache.hadoop.hbase.util.FutureUtils.lambda$addListener$0(FutureUtils.java:70) > at > java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) > at > java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736) > at > java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) > at > java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) > at > org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient$ZKTask$1.exec(ReadOnlyZKClient.java:174) > at > org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient.run(ReadOnlyZKClient.java:342) > ... 1 more > {noformat} > I think the logic is introduced at the time that we do not change the state > of meta region on zk. But now, we will change the state of meta region, so > maybe we should remove the logic. -- This message was sent by Atlassian JIRA (v7.6.3#76005)