[
https://issues.apache.org/jira/browse/YARN-10459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ryan Wu updated YARN-10459:
---------------------------
Description:
Now, the containerLaunchedOnNode method hold the SchedulerApplicationAttempt
writelock, but looking at the method, it does not change any field. And more
seriously, this will affect the scheduler.
{code:java}
public void containerLaunchedOnNode(ContainerId containerId, NodeId nodeId) {
// Inform the container
writelock.lock
try {
RMContainer rmContainer = getRMContainer(containerId);
if (rmContainer == null) {
// Some unknown container sneaked into the system. Kill it.
rmContext.getDispatcher().getEventHandler().handle( new
RMNodeCleanContainerEvent(nodeId, containerId)); return;
}
rmContainer.handle( new RMContainerEvent(containerId,
RMContainerEventType.LAUNCHED));
}finally {
writeLock.unlock();
}
}
{code}
was:
Now, the containerLaunchedOnNode method hold the SchedulerApplicationAttempt
writelock, but looking at the method, it does not change any field. And more
seriously, this will affect the scheduler.
{code:java}
// public void containerLaunchedOnNode(ContainerId containerId, NodeId nodeId)
{
// Inform the container
writelock.lock
try {
RMContainer rmContainer = getRMContainer(containerId);
if (rmContainer == null) {
// Some unknown container sneaked into the system. Kill it.
rmContext.getDispatcher().getEventHandler().handle( new
RMNodeCleanContainerEvent(nodeId, containerId)); return;
}
rmContainer.handle( new RMContainerEvent(containerId,
RMContainerEventType.LAUNCHED));
}finally {
writeLock.unlock();
}
}
{code}
> containerLaunchedOnNode method not need to hold schedulerApptemt lock
> ----------------------------------------------------------------------
>
> Key: YARN-10459
> URL: https://issues.apache.org/jira/browse/YARN-10459
> Project: Hadoop YARN
> Issue Type: Improvement
> Affects Versions: 3.2.0, 3.1.3
> Reporter: Ryan Wu
> Priority: Major
> Fix For: 3.2.1
>
>
>
> Now, the containerLaunchedOnNode method hold the SchedulerApplicationAttempt
> writelock, but looking at the method, it does not change any field. And more
> seriously, this will affect the scheduler.
> {code:java}
> public void containerLaunchedOnNode(ContainerId containerId, NodeId nodeId)
> {
> // Inform the container
> writelock.lock
> try {
> RMContainer rmContainer = getRMContainer(containerId);
> if (rmContainer == null) {
> // Some unknown container sneaked into the system. Kill it.
> rmContext.getDispatcher().getEventHandler().handle( new
> RMNodeCleanContainerEvent(nodeId, containerId)); return;
> }
> rmContainer.handle( new RMContainerEvent(containerId,
> RMContainerEventType.LAUNCHED));
> }finally {
> writeLock.unlock();
> }
> }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]