[
https://issues.apache.org/jira/browse/HDFS-2668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13225086#comment-13225086
]
Uma Maheswara Rao G commented on HDFS-2668:
-------------------------------------------
I see that this particular assertion already commented in code by refering this
issue.
{code}
/* TODO: following assertion is incorrect, see HDFS-2668
assert storedBlock.findDatanode(dn) < 0 : "Block " + block
+ " in recentInvalidatesSet should not appear in DN " + dn; */
{code}
I think we can remove that commented code(assertion) completely right?
> Incorrect assertion in BlockManager when block report arrives shortly after
> invalidation decision
> -------------------------------------------------------------------------------------------------
>
> Key: HDFS-2668
> URL: https://issues.apache.org/jira/browse/HDFS-2668
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: name-node
> Affects Versions: 0.23.0
> Reporter: Todd Lipcon
> Attachments: TestToReproduceHDFS-2668.patch
>
>
> I haven't written a test case to verify this yet, but I believe the following
> assertion is incorrect:
> {code}
> // Ignore replicas already scheduled to be removed from the DN
> if(invalidateBlocks.contains(dn.getStorageID(), block)) {
> assert storedBlock.findDatanode(dn) < 0 : "Block " + block
> + " in recentInvalidatesSet should not appear in DN " + dn;
> {code}
> The problem is that, when a block is invalidated due to over-replication, it
> is not immediately removed from the block map. So, if a block report arrives
> just after a block has been marked as invalidated, but before the block is
> actually deleted, I think this assertion will trigger incorrectly.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira