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


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

        

Reply via email to