Repository: hadoop
Updated Branches:
refs/heads/branch-2 aa64a5074 -> b7f7fb003
HDFS-13115. In getNumUnderConstructionBlocks(), ignore the inodeIds for which
the inodes have been deleted. Contributed by Yongjun Zhang.
(cherry picked from commit f491f717e9ee6b75ad5cfca48da9c6297e94a8f7)
Conflicts:
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
(cherry picked from commit 60d82ac61f2afa2a61c8eeabf20e45b5a89311d0)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b7f7fb00
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b7f7fb00
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b7f7fb00
Branch: refs/heads/branch-2
Commit: b7f7fb003e59a4de07cb204a242815219bd0e67d
Parents: aa64a50
Author: Yongjun Zhang <[email protected]>
Authored: Wed Feb 7 14:19:18 2018 -0800
Committer: Yongjun Zhang <[email protected]>
Committed: Wed Feb 7 15:35:41 2018 -0800
----------------------------------------------------------------------
.../hadoop/hdfs/server/namenode/LeaseManager.java | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/b7f7fb00/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
----------------------------------------------------------------------
diff --git
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
index 6b41fc9..1685a4f 100644
---
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
+++
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java
@@ -145,7 +145,15 @@ public class LeaseManager {
+ "acquired before counting under construction blocks";
long numUCBlocks = 0;
for (Long id : getINodeIdWithLeases()) {
- final INodeFile cons =
fsnamesystem.getFSDirectory().getInode(id).asFile();
+ INode inode = fsnamesystem.getFSDirectory().getInode(id);
+ if (inode == null) {
+ // The inode could have been deleted after getINodeIdWithLeases() is
+ // called, check here, and ignore it if so
+ LOG.warn("Failed to find inode " + id +
+ " in getNumUnderConstructionBlocks().");
+ continue;
+ }
+ final INodeFile cons = inode.asFile();
if (!cons.isUnderConstruction()) {
LOG.warn("The file " + cons.getFullPathName()
+ " is not under construction but has lease.");
@@ -156,8 +164,9 @@ public class LeaseManager {
continue;
}
for(BlockInfo b : blocks) {
- if(!b.isComplete())
+ if(!b.isComplete()) {
numUCBlocks++;
+ }
}
}
LOG.info("Number of blocks under construction: " + numUCBlocks);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]