You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Arpit Agarwal (JIRA)" <ji...@apache.org> on 2013/11/08 19:32:18 UTC

[jira] [Created] (HDFS-5483) Make reportDiff resilient to malformed block reports

Arpit Agarwal created HDFS-5483:
-----------------------------------

             Summary: Make reportDiff resilient to malformed block reports
                 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


{{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#6144)