YARN-2608. FairScheduler: Potential deadlocks in loading alloc files and clock access. (Wei Yan via kasha)
(cherry picked from commit c9811af09a3d3f9f2f1b86fc9d6f2763d3225e44)
This commit is contained in:
parent
9ad9e51cd9
commit
b923c291b4
|
@ -420,6 +420,9 @@ Release 2.6.0 - UNRELEASED
|
||||||
YARN-2523. ResourceManager UI showing negative value for "Decommissioned
|
YARN-2523. ResourceManager UI showing negative value for "Decommissioned
|
||||||
Nodes" field (Rohith via jlowe)
|
Nodes" field (Rohith via jlowe)
|
||||||
|
|
||||||
|
YARN-2608. FairScheduler: Potential deadlocks in loading alloc files and
|
||||||
|
clock access. (Wei Yan via kasha)
|
||||||
|
|
||||||
Release 2.5.1 - 2014-09-05
|
Release 2.5.1 - 2014-09-05
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -117,7 +117,7 @@ public class FairScheduler extends
|
||||||
|
|
||||||
private Resource incrAllocation;
|
private Resource incrAllocation;
|
||||||
private QueueManager queueMgr;
|
private QueueManager queueMgr;
|
||||||
private Clock clock;
|
private volatile Clock clock;
|
||||||
private boolean usePortForNodeName;
|
private boolean usePortForNodeName;
|
||||||
|
|
||||||
private static final Log LOG = LogFactory.getLog(FairScheduler.class);
|
private static final Log LOG = LogFactory.getLog(FairScheduler.class);
|
||||||
|
@ -555,11 +555,12 @@ public class FairScheduler extends
|
||||||
return continuousSchedulingSleepMs;
|
return continuousSchedulingSleepMs;
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized Clock getClock() {
|
public Clock getClock() {
|
||||||
return clock;
|
return clock;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected synchronized void setClock(Clock clock) {
|
@VisibleForTesting
|
||||||
|
void setClock(Clock clock) {
|
||||||
this.clock = clock;
|
this.clock = clock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1204,8 +1205,8 @@ public class FairScheduler extends
|
||||||
this.rmContext = rmContext;
|
this.rmContext = rmContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void initScheduler(Configuration conf)
|
private void initScheduler(Configuration conf) throws IOException {
|
||||||
throws IOException {
|
synchronized (this) {
|
||||||
this.conf = new FairSchedulerConfiguration(conf);
|
this.conf = new FairSchedulerConfiguration(conf);
|
||||||
validateConf(this.conf);
|
validateConf(this.conf);
|
||||||
minimumAllocation = this.conf.getMinimumAllocation();
|
minimumAllocation = this.conf.getMinimumAllocation();
|
||||||
|
@ -1263,6 +1264,7 @@ public class FairScheduler extends
|
||||||
schedulingThread.setName("FairSchedulerContinuousScheduling");
|
schedulingThread.setName("FairSchedulerContinuousScheduling");
|
||||||
schedulingThread.setDaemon(true);
|
schedulingThread.setDaemon(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
allocsLoader.init(conf);
|
allocsLoader.init(conf);
|
||||||
allocsLoader.setReloadListener(new AllocationReloadListener());
|
allocsLoader.setReloadListener(new AllocationReloadListener());
|
||||||
|
@ -1321,7 +1323,7 @@ public class FairScheduler extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void reinitialize(Configuration conf, RMContext rmContext)
|
public void reinitialize(Configuration conf, RMContext rmContext)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
try {
|
try {
|
||||||
allocsLoader.reloadAllocations();
|
allocsLoader.reloadAllocations();
|
||||||
|
|
Loading…
Reference in New Issue