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

Eric Payne commented on YARN-7051:
----------------------------------

Unit test failures are not related to this patch.
- {{TestContainerAllocation}}: YARN-7044
- {{h.y.s.r.security.TestDelegationTokenRenewer}}: YARN-5816

{code:title=LeafQueue#getAllApplications}
  public Collection<FiCaSchedulerApp> getAllApplications() {
    Collection<FiCaSchedulerApp> apps = new HashSet<FiCaSchedulerApp>(
        pendingOrderingPolicy.getSchedulableEntities());
    apps.addAll(orderingPolicy.getSchedulableEntities());

    return Collections.unmodifiableCollection(apps);
  }
{code}
bq. {{getAllApplications}} in {{LeafQueue}} then has to be under readlock also, 
correct?
Possibly. It looks like {{HashSet#addAll}} will iterate through 
{{orderingPolicy}}, which could possibly change during the loop. However, I 
would like to have that discussion on a separate JIRA since I may be 
misinterpreting how {{addAll}} works and since the usage of 
{{getAAllApplications}} affects more than just preemption.

> FifoIntraQueuePreemptionPlugin can get concurrent modification exception
> ------------------------------------------------------------------------
>
>                 Key: YARN-7051
>                 URL: https://issues.apache.org/jira/browse/YARN-7051
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacity scheduler, scheduler preemption, yarn
>    Affects Versions: 2.9.0, 2.8.1, 3.0.0-alpha3
>            Reporter: Eric Payne
>            Assignee: Eric Payne
>            Priority: Critical
>         Attachments: YARN-7051.001.patch, YARN-7051.002.patch
>
>
> {{FifoIntraQueuePreemptionPlugin#calculateUsedAMResourcesPerQueue}} has the 
> following code:
> {code}
>     Collection<FiCaSchedulerApp> runningApps = leafQueue.getApplications();
>     Resource amUsed = Resources.createResource(0, 0);
>     for (FiCaSchedulerApp app : runningApps) {
> {code}
> {{runningApps}} is unmodifiable but not concurrent. This caused the 
> preemption monitor thread to crash in the RM in one of our clusters.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to