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
|
||||
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
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -117,7 +117,7 @@ public class FairScheduler extends
|
|||
|
||||
private Resource incrAllocation;
|
||||
private QueueManager queueMgr;
|
||||
private Clock clock;
|
||||
private volatile Clock clock;
|
||||
private boolean usePortForNodeName;
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(FairScheduler.class);
|
||||
|
@ -555,11 +555,12 @@ public class FairScheduler extends
|
|||
return continuousSchedulingSleepMs;
|
||||
}
|
||||
|
||||
public synchronized Clock getClock() {
|
||||
public Clock getClock() {
|
||||
return clock;
|
||||
}
|
||||
|
||||
protected synchronized void setClock(Clock clock) {
|
||||
@VisibleForTesting
|
||||
void setClock(Clock clock) {
|
||||
this.clock = clock;
|
||||
}
|
||||
|
||||
|
@ -1204,8 +1205,8 @@ public class FairScheduler extends
|
|||
this.rmContext = rmContext;
|
||||
}
|
||||
|
||||
private synchronized void initScheduler(Configuration conf)
|
||||
throws IOException {
|
||||
private void initScheduler(Configuration conf) throws IOException {
|
||||
synchronized (this) {
|
||||
this.conf = new FairSchedulerConfiguration(conf);
|
||||
validateConf(this.conf);
|
||||
minimumAllocation = this.conf.getMinimumAllocation();
|
||||
|
@ -1233,7 +1234,7 @@ public class FairScheduler extends
|
|||
updateInterval = FairSchedulerConfiguration.DEFAULT_UPDATE_INTERVAL_MS;
|
||||
LOG.warn(FairSchedulerConfiguration.UPDATE_INTERVAL_MS
|
||||
+ " is invalid, so using default value " +
|
||||
+ FairSchedulerConfiguration.DEFAULT_UPDATE_INTERVAL_MS
|
||||
+FairSchedulerConfiguration.DEFAULT_UPDATE_INTERVAL_MS
|
||||
+ " ms instead");
|
||||
}
|
||||
|
||||
|
@ -1263,6 +1264,7 @@ public class FairScheduler extends
|
|||
schedulingThread.setName("FairSchedulerContinuousScheduling");
|
||||
schedulingThread.setDaemon(true);
|
||||
}
|
||||
}
|
||||
|
||||
allocsLoader.init(conf);
|
||||
allocsLoader.setReloadListener(new AllocationReloadListener());
|
||||
|
@ -1321,7 +1323,7 @@ public class FairScheduler extends
|
|||
}
|
||||
|
||||
@Override
|
||||
public synchronized void reinitialize(Configuration conf, RMContext rmContext)
|
||||
public void reinitialize(Configuration conf, RMContext rmContext)
|
||||
throws IOException {
|
||||
try {
|
||||
allocsLoader.reloadAllocations();
|
||||
|
|
Loading…
Reference in New Issue