HDFS-10453. ReplicationMonitor thread could stuck for long time due to the race 
between replication and delete of same file in a large cluster.. Contributed by 
He Xiaoqiao.


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

Branch: refs/heads/branch-2.7
Commit: 02f6030b35999f2f741a8c4b9363ee59f36f7e28
Parents: 53a72f6
Author: Arpit Agarwal <a...@apache.org>
Authored: Mon Feb 12 07:09:54 2018 -0800
Committer: Arpit Agarwal <a...@apache.org>
Committed: Mon Feb 12 07:09:54 2018 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hdfs/server/blockmanagement/BlockManager.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/02f6030b/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 57fda98..797215c 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
@@ -3707,6 +3707,7 @@ public class BlockManager {
   private static class ReplicationWork {
     private final Block block;
     private final String srcPath;
+    private final long blockSize;
     private final byte storagePolicyID;
     private final DatanodeDescriptor srcNode;
     private final int additionalReplRequired;
@@ -3724,6 +3725,7 @@ public class BlockManager {
         int priority) {
       this.block = block;
       this.srcPath = bc.getName();
+      this.blockSize = block.getNumBytes();
       this.storagePolicyID = bc.getStoragePolicyID();
       this.srcNode = srcNode;
       this.srcNode.incrementPendingReplicationWithoutTargets();
@@ -3740,7 +3742,7 @@ public class BlockManager {
       try {
         targets = blockplacement.chooseTarget(getSrcPath(),
             additionalReplRequired, srcNode, liveReplicaStorages, false,
-            excludedNodes, block.getNumBytes(),
+            excludedNodes, blockSize,
             storagePolicySuite.getPolicy(getStoragePolicyID()));
       } finally {
         srcNode.decrementPendingReplicationWithoutTargets();


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to