[ https://issues.apache.org/jira/browse/HDFS-6830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14090366#comment-14090366 ]
Tsz Wo Nicholas Sze edited comment on HDFS-6830 at 8/8/14 6:29 AM: ------------------------------------------------------------------- > ... the callee does not expect it to be. Except for tests, BlockInfo.addStorage(..) is only called by DatanodeStorageInfo.addBlock(..). Do you mean that DatanodeStorageInfo.addBlock(..) is the ONLY callee and the bug is that it does not remove the block from otherStorage's list? was (Author: szetszwo): > ... the callee does not expect it to be. Except for tests, BlockInfo.addStorage(..) is only called by DatanodeStorageInfo.addBlock(..). Do you mean that DatanodeStorageInfo.addBlock(..) is the ONLY callee and it does not expect the block is still in the otherStorage's list since it already has checked and called otherStorage.removeBlock(b)? > BlockManager.addStorage fails when DN updates storage > ----------------------------------------------------- > > Key: HDFS-6830 > URL: https://issues.apache.org/jira/browse/HDFS-6830 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 2.5.0 > Reporter: Arpit Agarwal > Assignee: Arpit Agarwal > Attachments: HDFS-6830.01.patch, HDFS-6830.02.patch, > HDFS-6830.03.patch > > > The call to {{removeStorageInfo}} is wrong because the block is still in the > DatanodeStorage's list of blocks and the callee does not expect it to be. > {code} > } else { > // The block is on the DN but belongs to a different storage. > // Update our state. > removeStorage(getStorageInfo(idx)); > added = false; // Just updating storage. Return false. > } > {code} > It is a very unlikely code path to hit since storage updates usually occur > via incremental block reports. -- This message was sent by Atlassian JIRA (v6.2#6252)