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)