MAPREDUCE-3345. Fixed a race condition in ResourceManager that was causing TestContainerManagerSecurity to fail sometimes. Contributed by Hitesh Shah.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1199144 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9fe9f42c8f
commit
80cc8e9486
|
@ -89,6 +89,9 @@ Release 0.23.1 - Unreleased
|
|||
MAPREDUCE-3342. Fixed JobHistoryServer to also show the job's queue
|
||||
name. (Jonathan Eagles via vinodkv)
|
||||
|
||||
MAPREDUCE-3345. Fixed a race condition in ResourceManager that was causing
|
||||
TestContainerManagerSecurity to fail sometimes. (Hitesh Shah via vinodkv)
|
||||
|
||||
Release 0.23.0 - 2011-11-01
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -595,8 +595,13 @@ public class RMAppAttemptImpl implements RMAppAttempt {
|
|||
AM_CONTAINER_PRIORITY, "*", appAttempt.submissionContext
|
||||
.getAMContainerSpec().getResource(), 1);
|
||||
|
||||
appAttempt.scheduler.allocate(appAttempt.applicationAttemptId,
|
||||
Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST);
|
||||
Allocation amContainerAllocation =
|
||||
appAttempt.scheduler.allocate(appAttempt.applicationAttemptId,
|
||||
Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST);
|
||||
if (amContainerAllocation != null
|
||||
&& amContainerAllocation.getContainers() != null) {
|
||||
assert(amContainerAllocation.getContainers().size() == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -236,28 +236,30 @@ public class FifoScheduler implements ResourceScheduler {
|
|||
RMContainerEventType.RELEASED);
|
||||
}
|
||||
|
||||
if (!ask.isEmpty()) {
|
||||
LOG.debug("allocate: pre-update" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" application=" + application);
|
||||
application.showRequests();
|
||||
synchronized (application) {
|
||||
if (!ask.isEmpty()) {
|
||||
LOG.debug("allocate: pre-update" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" application=" + application);
|
||||
application.showRequests();
|
||||
|
||||
// Update application requests
|
||||
application.updateResourceRequests(ask);
|
||||
// Update application requests
|
||||
application.updateResourceRequests(ask);
|
||||
|
||||
LOG.debug("allocate: post-update" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" application=" + application);
|
||||
application.showRequests();
|
||||
LOG.debug("allocate: post-update" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" application=" + application);
|
||||
application.showRequests();
|
||||
|
||||
LOG.debug("allocate:" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" #ask=" + ask.size());
|
||||
LOG.debug("allocate:" +
|
||||
" applicationId=" + applicationAttemptId +
|
||||
" #ask=" + ask.size());
|
||||
}
|
||||
|
||||
return new Allocation(
|
||||
application.pullNewlyAllocatedContainers(),
|
||||
application.getHeadroom());
|
||||
}
|
||||
|
||||
return new Allocation(
|
||||
application.pullNewlyAllocatedContainers(),
|
||||
application.getHeadroom());
|
||||
}
|
||||
|
||||
private SchedulerApp getApplication(
|
||||
|
|
Loading…
Reference in New Issue