[ https://issues.apache.org/jira/browse/HDFS-9662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lin Yiqun updated HDFS-9662: ---------------------------- Status: Patch Available (was: Open) Attach a initial patch, kindly reviewing! > 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 > Attachments: HDFS-9662.001.patch > > > 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)