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
|
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
|
||||||
|
|
|
@ -595,8 +595,13 @@ public class RMAppAttemptImpl implements RMAppAttempt {
|
||||||
AM_CONTAINER_PRIORITY, "*", appAttempt.submissionContext
|
AM_CONTAINER_PRIORITY, "*", appAttempt.submissionContext
|
||||||
.getAMContainerSpec().getResource(), 1);
|
.getAMContainerSpec().getResource(), 1);
|
||||||
|
|
||||||
appAttempt.scheduler.allocate(appAttempt.applicationAttemptId,
|
Allocation amContainerAllocation =
|
||||||
Collections.singletonList(request), EMPTY_CONTAINER_RELEASE_LIST);
|
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);
|
RMContainerEventType.RELEASED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ask.isEmpty()) {
|
synchronized (application) {
|
||||||
LOG.debug("allocate: pre-update" +
|
if (!ask.isEmpty()) {
|
||||||
" applicationId=" + applicationAttemptId +
|
LOG.debug("allocate: pre-update" +
|
||||||
" application=" + application);
|
" applicationId=" + applicationAttemptId +
|
||||||
application.showRequests();
|
" application=" + application);
|
||||||
|
application.showRequests();
|
||||||
|
|
||||||
// Update application requests
|
// Update application requests
|
||||||
application.updateResourceRequests(ask);
|
application.updateResourceRequests(ask);
|
||||||
|
|
||||||
LOG.debug("allocate: post-update" +
|
LOG.debug("allocate: post-update" +
|
||||||
" applicationId=" + applicationAttemptId +
|
" applicationId=" + applicationAttemptId +
|
||||||
" application=" + application);
|
" application=" + application);
|
||||||
application.showRequests();
|
application.showRequests();
|
||||||
|
|
||||||
LOG.debug("allocate:" +
|
LOG.debug("allocate:" +
|
||||||
" applicationId=" + applicationAttemptId +
|
" applicationId=" + applicationAttemptId +
|
||||||
" #ask=" + ask.size());
|
" #ask=" + ask.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Allocation(
|
||||||
|
application.pullNewlyAllocatedContainers(),
|
||||||
|
application.getHeadroom());
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Allocation(
|
|
||||||
application.pullNewlyAllocatedContainers(),
|
|
||||||
application.getHeadroom());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SchedulerApp getApplication(
|
private SchedulerApp getApplication(
|
||||||
|
|
Loading…
Reference in New Issue