[ 
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 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 hold the SchedulerApplicationAttempt 
writelock, but looking at the method, it does not change any field. And more 
seriously, this will affect the scheduler  

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(); 
    }   
}

 


> 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 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]

Reply via email to