HDFS-12363. Possible NPE in BlockManager$StorageInfoDefragmenter#scanAndCompactStorages. Contributed by Xiao Chen
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1fbb662c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1fbb662c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1fbb662c Branch: refs/heads/yarn-3409 Commit: 1fbb662c7092d08a540acff7e92715693412e486 Parents: 7ecc6db Author: Mingliang Liu <[email protected]> Authored: Thu Aug 31 22:36:56 2017 -0700 Committer: Mingliang Liu <[email protected]> Committed: Thu Aug 31 22:36:56 2017 -0700 ---------------------------------------------------------------------- .../hadoop/hdfs/server/blockmanagement/BlockManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1fbb662c/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java index 6129db8..e83cbc6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java @@ -4487,8 +4487,12 @@ public class BlockManager implements BlockStatsMXBean { for (int i = 0; i < datanodesAndStorages.size(); i += 2) { namesystem.writeLock(); try { - DatanodeStorageInfo storage = datanodeManager. - getDatanode(datanodesAndStorages.get(i)). + final DatanodeDescriptor dn = datanodeManager. + getDatanode(datanodesAndStorages.get(i)); + if (dn == null) { + continue; + } + final DatanodeStorageInfo storage = dn. getStorageInfo(datanodesAndStorages.get(i + 1)); if (storage != null) { boolean aborted = --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
