addStoredBlock should take into account corrupted blocks when determining 
excesses
----------------------------------------------------------------------------------

                 Key: HADOOP-5012
                 URL: https://issues.apache.org/jira/browse/HADOOP-5012
             Project: Hadoop Core
          Issue Type: Bug
            Reporter: Brian Bockelman


I found another source of corruption on our cluster.

0) Three replicas of a block exist
1) One is recognized as corrupt (3 reps total)
2) Namenode decides to create a new replica.  Replication done and 
addStoredBlock is called (4 reps total)
3) There are too many replicas, so processOverReplicatedBlock is called by 
addStoredBlock.
4) processOverReplicatedBlock is called, and it decides do invalidate the newly 
created replica.  [Oddly enough, it decides to invalidate the newly created one 
instead of the one in the corrupted replicas map!]
5) We are in the same state as (1) -- 3 replicas total, 1 of which is still bad.

I believe we can fix this easily -- change numCurrentReplica variable to take 
into account the number of corrupt replicas.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to