[ 
https://issues.apache.org/jira/browse/HDFS-5483?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arpit Agarwal updated HDFS-5483:
--------------------------------

          Resolution: Fixed
       Fix Version/s: 2.4.0
    Target Version/s: 2.4.0
              Status: Resolved  (was: Patch Available)

Thanks for the reviews Chris. I committed v4 of the patch.

v3 was +1'ed by Jenkins. v4 is the same except for the trivial test 
modification which I verified manually.

> NN should gracefully handle multiple block replicas on same DN
> --------------------------------------------------------------
>
>                 Key: HDFS-5483
>                 URL: https://issues.apache.org/jira/browse/HDFS-5483
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode
>    Affects Versions: Heterogeneous Storage (HDFS-2832)
>            Reporter: Arpit Agarwal
>            Assignee: Arpit Agarwal
>             Fix For: 3.0.0, 2.4.0
>
>         Attachments: h5483.02.patch, h5483.03.patch, h5483.04.patch
>
>
> {{BlockManager#reportDiff}} can cause an assertion failure in 
> {{BlockInfo#moveBlockToHead}} if the block report shows the same block as 
> belonging to more than one storage.
> The issue is that {{moveBlockToHead}} assumes it will find the 
> DatanodeStorageInfo for the given block.
> Exception details:
> {code}
> java.lang.AssertionError: Index is out of bound
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockInfo.setNext(BlockInfo.java:152)
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockInfo.moveBlockToHead(BlockInfo.java:351)
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.DatanodeStorageInfo.moveBlockToHead(DatanodeStorageInfo.java:243)
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.reportDiff(BlockManager.java:1841)
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processReport(BlockManager.java:1709)
>         at 
> org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processReport(BlockManager.java:1637)
>         at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.blockReport(NameNodeRpcServer.java:984)
>         at 
> org.apache.hadoop.hdfs.server.datanode.TestDataNodeVolumeFailure.testVolumeFailure(TestDataNodeVolumeFailure.java:165)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to