HDFS-10525. Fix NPE in CacheReplicationMonitor#rescanCachedBlockMap (Xiao Chen via cmccabe)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2ca73445 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2ca73445 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2ca73445 Branch: refs/heads/HDFS-1312 Commit: 2ca73445f5c2929d9c2ff4232dca58a63a0570a0 Parents: 2449db5 Author: Colin Patrick Mccabe <cmcc...@cloudera.com> Authored: Wed Jun 15 22:47:01 2016 -0700 Committer: Colin Patrick Mccabe <cmcc...@cloudera.com> Committed: Wed Jun 15 22:47:01 2016 -0700 ---------------------------------------------------------------------- .../hdfs/server/blockmanagement/CacheReplicationMonitor.java | 8 ++++++++ 1 file changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ca73445/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/CacheReplicationMonitor.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/CacheReplicationMonitor.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/CacheReplicationMonitor.java index b4b5e23..ca8d72a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/CacheReplicationMonitor.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/CacheReplicationMonitor.java @@ -502,6 +502,14 @@ public class CacheReplicationMonitor extends Thread implements Closeable { CachedBlock cblock = it.next(); BlockInfo blockInfo = blockManager. getStoredBlock(new Block(cblock.getBlockId())); + if (blockInfo == null) { + // Cannot find this block on the NameNode, skip this block from + // capacity calculation. Later logic will handle this block. + LOG.debug("Block {}: cannot be found in block manager and hence" + + " skipped from calculation for node {}.", cblock.getBlockId(), + dn.getDatanodeUuid()); + continue; + } if (blockInfo.getNumBytes() > remaining) { LOG.debug("Block {}: removing from PENDING_CACHED for node {} " + "because it cannot fit in remaining cache size {}.", --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org