Lin Yiqun created HDFS-9662:
-------------------------------

             Summary: Wrong checking penultimate block replicated in 
FSNamesystem
                 Key: HDFS-9662
                 URL: https://issues.apache.org/jira/browse/HDFS-9662
             Project: Hadoop HDFS
          Issue Type: Bug
    Affects Versions: 2.7.1
            Reporter: Lin Yiqun
            Assignee: Lin Yiqun


There is a bug in checking penultimate block replicated in FSNamesystem.
{code}
/**
   * Check that the indicated file's blocks are present and
   * replicated.  If not, return false. If checkall is true, then check
   * all blocks, otherwise check only penultimate block.
   */
  boolean checkFileProgress(String src, INodeFile v, boolean checkall) {
    assert hasReadLock();
    if (checkall) {
      return blockManager.checkBlocksProperlyReplicated(src, v
          .getBlocks());
    } else {
      // check the penultimate block of this file
      BlockInfo b = v.getPenultimateBlock();
      return b == null ||
          blockManager.checkBlocksProperlyReplicated(
              src, new BlockInfo[] { b });
    }
  }
{code}
When the param checkall is true, the checking operations is true.But if 
checkall is false, it will check the penultimate block of this file. And if the 
BlockInfo b is null, it will return true by this code, but actually it should 
be return false because the penultimate block is not replicated and has no 
blockInfo.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to