From 9cbbd1eae893b21212c9bc9e6745c6859317a667 Mon Sep 17 00:00:00 2001 From: Yiqun Lin Date: Mon, 6 Feb 2017 13:15:16 +0800 Subject: [PATCH] HDFS-11377. Balancer hung due to no available mover threads. Contributed by yunjiong zhao. --- .../org/apache/hadoop/hdfs/server/balancer/Dispatcher.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Dispatcher.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Dispatcher.java index 6b153dac31..ceccff5c80 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Dispatcher.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/balancer/Dispatcher.java @@ -88,7 +88,6 @@ import com.google.common.base.Preconditions; public class Dispatcher { static final Log LOG = LogFactory.getLog(Dispatcher.class); - private static final int MAX_NO_PENDING_MOVE_ITERATIONS = 5; /** * the period of time to delay the usage of a DataNode after hitting * errors when using it for migrating data @@ -1108,6 +1107,8 @@ public class Dispatcher { } if (moveExecutor == null) { LOG.warn("No mover threads available: skip moving " + p); + targetDn.removePendingBlock(p); + p.proxySource.removePendingBlock(p); return; } moveExecutor.execute(new Runnable() {