You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Jian He (JIRA)" <ji...@apache.org> on 2015/02/05 20:46:36 UTC

[jira] [Comment Edited] (YARN-3145) ConcurrentModificationException on CapacityScheduler ParentQueue#getQueueUserAclInfo

    [ https://issues.apache.org/jira/browse/YARN-3145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14307857#comment-14307857 ] 

Jian He edited comment on YARN-3145 at 2/5/15 7:46 PM:
-------------------------------------------------------

thanks for working on this! 
In ParentQueue#completedContainer, the following is not synchronized, I think this should be inside the previous queue synchronization block. 
{code}
      if (sortQueues) {
        // reinsert the updated queue
        for (Iterator<CSQueue> iter=childQueues.iterator(); iter.hasNext();) {
          CSQueue csqueue = iter.next();
          if(csqueue.equals(completedChildQueue))
          {
            iter.remove();
            LOG.info("Re-sorting completed queue: " + csqueue.getQueuePath() + 
                " stats: " + csqueue);
            childQueues.add(csqueue);
            break;
          }
        }
      }
{code}


was (Author: jianhe):
thanks for working on this! 
In ParentQueue#completedContainer, the following is not synchronized, I think this should be inside the previous application synchronization block. 
{code}
      if (sortQueues) {
        // reinsert the updated queue
        for (Iterator<CSQueue> iter=childQueues.iterator(); iter.hasNext();) {
          CSQueue csqueue = iter.next();
          if(csqueue.equals(completedChildQueue))
          {
            iter.remove();
            LOG.info("Re-sorting completed queue: " + csqueue.getQueuePath() + 
                " stats: " + csqueue);
            childQueues.add(csqueue);
            break;
          }
        }
      }
{code}

> ConcurrentModificationException on CapacityScheduler ParentQueue#getQueueUserAclInfo
> ------------------------------------------------------------------------------------
>
>                 Key: YARN-3145
>                 URL: https://issues.apache.org/jira/browse/YARN-3145
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Jian He
>            Assignee: Rohith
>         Attachments: YARN-3145.001.patch
>
>
> {code}
> ava.util.ConcurrentModificationException(java.util.ConcurrentModificationException
> at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1115)
> at java.util.TreeMap$KeyIterator.next(TreeMap.java:1169)
> at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.getQueueUserAclInfo(ParentQueue.java:347)
> at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.getQueueUserAclInfo(ParentQueue.java:348)
> at org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.getQueueUserAclInfo(CapacityScheduler.java:850)
> at org.apache.hadoop.yarn.server.resourcemanager.ClientRMService.getQueueUserAcls(ClientRMService.java:844)
> at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationClientProtocolPBServiceImpl.getQueueUserAcls(ApplicationClientProtocolPBServiceImpl.java:250)
> at org.apache.hadoop.yarn.proto.ApplicationClientProtocol$ApplicationClientProtocolService$2.callBlockingMethod(ApplicationClientProtocol.java:335)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)