[ 
https://issues.apache.org/jira/browse/HDFS-13410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16429573#comment-16429573
 ] 

Íñigo Goiri commented on HDFS-13410:
------------------------------------

The way I found this was by having a Router by itself without State Store and 
so on.
The exception original was:
{code}
com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2234)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
        at 
com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics.getNodes(NamenodeBeanMetrics.java:355)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics.getLiveNodes(NamenodeBeanMetrics.java:334)
        at 
org.apache.hadoop.hdfs.server.federation.router.TestRouterRpc$4.get(TestRouterRpc.java:1172)
        at 
org.apache.hadoop.hdfs.server.federation.router.TestRouterRpc$4.get(TestRouterRpc.java:1)
        at 
org.apache.hadoop.test.GenericTestUtils.waitFor(GenericTestUtils.java:383)
        at 
org.apache.hadoop.hdfs.server.federation.router.TestRouterRpc.testNamenodeMetrics(TestRouterRpc.java:1169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
        at 
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379)
        at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340)
        at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
        at java.util.LinkedList.get(LinkedList.java:476)
        at 
org.apache.hadoop.hdfs.server.federation.router.RouterRpcClient.invokeConcurrent(RouterRpcClient.java:1038)
        at 
org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.getDatanodeReport(RouterRpcServer.java:1296)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics.getNodesImpl(NamenodeBeanMetrics.java:373)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics.access$0(NamenodeBeanMetrics.java:368)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics$1.load(NamenodeBeanMetrics.java:160)
        at 
org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics$1.load(NamenodeBeanMetrics.java:1)
        at 
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
        at 
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
        at 
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
        ... 37 more
{code}

With the IOException thrown in  [^HDFS-13410.000.patch], it just gets empty 
replies and throws the proper exceptions.

> RBF: Support federation with no subclusters
> -------------------------------------------
>
>                 Key: HDFS-13410
>                 URL: https://issues.apache.org/jira/browse/HDFS-13410
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Íñigo Goiri
>            Assignee: Íñigo Goiri
>            Priority: Minor
>         Attachments: HDFS-13410.000.patch
>
>
> If the federation has no subclusters the logs have long stack traces. Even 
> though this is not a regular setup for RBF, we should trigger log message.
> An example:
> {code}
> Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>       at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
>       at java.util.LinkedList.get(LinkedList.java:476)
>       at 
> org.apache.hadoop.hdfs.server.federation.router.RouterRpcClient.invokeConcurrent(RouterRpcClient.java:1028)
>       at 
> org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.getDatanodeReport(RouterRpcServer.java:1264)
>       at 
> org.apache.hadoop.hdfs.server.federation.metrics.FederationMetrics.getNodeUsage(FederationMetrics.java:424)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to