[ 
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}
// code placeholder
{code}
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(); } }  

  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.
{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}
> // code placeholder
> {code}
> 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(); } }  



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