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)