MAPREDUCE-3345. Fixed a race condition in ResourceManager that was causing TestContainerManagerSecurity to fail sometimes. Contributed by Hitesh Shah.

svn merge -c r1199144 --ignore-ancestry ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1199145 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Vinod Kumar Vavilapalli 2011-11-08 07:57:23 +00:00
parent fe6c20b02a
commit 7db30f8428
3 changed files with 30 additions and 20 deletions

View File

@ -39,6 +39,9 @@ Release 0.23.1 - Unreleased
MAPREDUCE-3342. Fixed JobHistoryServer to also show the job's queue MAPREDUCE-3342. Fixed JobHistoryServer to also show the job's queue
name. (Jonathan Eagles via vinodkv) 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 Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -595,8 +595,13 @@ public void transition(RMAppAttemptImpl appAttempt,
AM_CONTAINER_PRIORITY, "*", appAttempt.submissionContext AM_CONTAINER_PRIORITY, "*", appAttempt.submissionContext
.getAMContainerSpec().getResource(), 1); .getAMContainerSpec().getResource(), 1);
Allocation amContainerAllocation =
appAttempt.scheduler.allocate(appAttempt.applicationAttemptId, appAttempt.scheduler.allocate(appAttempt.applicationAttemptId,
Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST); Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST);
if (amContainerAllocation != null
&& amContainerAllocation.getContainers() != null) {
assert(amContainerAllocation.getContainers().size() == 0);
}
} }
} }

View File

@ -236,6 +236,7 @@ public Allocation allocate(
RMContainerEventType.RELEASED); RMContainerEventType.RELEASED);
} }
synchronized (application) {
if (!ask.isEmpty()) { if (!ask.isEmpty()) {
LOG.debug("allocate: pre-update" + LOG.debug("allocate: pre-update" +
" applicationId=" + applicationAttemptId + " applicationId=" + applicationAttemptId +
@ -259,6 +260,7 @@ public Allocation allocate(
application.pullNewlyAllocatedContainers(), application.pullNewlyAllocatedContainers(),
application.getHeadroom()); application.getHeadroom());
} }
}
private SchedulerApp getApplication( private SchedulerApp getApplication(
ApplicationAttemptId applicationAttemptId) { ApplicationAttemptId applicationAttemptId) {