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)