HDFS-7066. LazyWriter#evictBlocks misses a null check for replicaState. 
(Contributed by Xiaoyu Yao)

Conflicts:
        hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-6581.txt


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6906ecce
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6906ecce
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6906ecce

Branch: refs/heads/branch-2
Commit: 6906eccec48e3462d17e81e779c3f59d07b43468
Parents: b8a2eb7
Author: arp <[email protected]>
Authored: Mon Sep 15 15:28:17 2014 -0700
Committer: Jitendra Pandey <[email protected]>
Committed: Fri Oct 17 13:42:01 2014 -0700

----------------------------------------------------------------------
 .../hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java       | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/6906ecce/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
index 2b16a65..44a91c1 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
@@ -2410,6 +2410,10 @@ class FsDatasetImpl implements 
FsDatasetSpi<FsVolumeImpl> {
         LazyWriteReplicaTracker.ReplicaState replicaState =
             lazyWriteReplicaTracker.getNextCandidateForEviction();
 
+        if (replicaState == null) {
+          break;
+        }
+
         if (LOG.isDebugEnabled()) {
           LOG.debug("Evicting block " + replicaState);
         }

Reply via email to