HDFS-11377. Balancer hung due to no available mover threads. Contributed by yunjiong zhao.
This commit is contained in:
parent
cce35c3815
commit
9cbbd1eae8
|
@ -88,7 +88,6 @@ import com.google.common.base.Preconditions;
|
||||||
public class Dispatcher {
|
public class Dispatcher {
|
||||||
static final Log LOG = LogFactory.getLog(Dispatcher.class);
|
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
|
* the period of time to delay the usage of a DataNode after hitting
|
||||||
* errors when using it for migrating data
|
* errors when using it for migrating data
|
||||||
|
@ -1108,6 +1107,8 @@ public class Dispatcher {
|
||||||
}
|
}
|
||||||
if (moveExecutor == null) {
|
if (moveExecutor == null) {
|
||||||
LOG.warn("No mover threads available: skip moving " + p);
|
LOG.warn("No mover threads available: skip moving " + p);
|
||||||
|
targetDn.removePendingBlock(p);
|
||||||
|
p.proxySource.removePendingBlock(p);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
moveExecutor.execute(new Runnable() {
|
moveExecutor.execute(new Runnable() {
|
||||||
|
|
Loading…
Reference in New Issue