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

Muhammad Samir Khan edited comment on YARN-10390 at 8/15/20, 1:30 AM:
----------------------------------------------------------------------

Worth mentioning that I had to repeat some of the tests because of 
java.lang.IllegalArgumentException: Comparison method violates its general 
contract! Searched and found that there are existing jiras with same problem, 
e.g. YARN-8764, YARN-10178.

Have not investigated further. Adding stack trace for one failed run:
{quote}Exception in thread "Thread-9" java.lang.IllegalArgumentException: 
Comparison method violates its general contract!

        at java.util.TimSort.mergeHi(TimSort.java:899)

        at java.util.TimSort.mergeAt(TimSort.java:516)

        at java.util.TimSort.mergeForceCollapse(TimSort.java:457)

        at java.util.TimSort.sort(TimSort.java:254)

        at java.util.Arrays.sort(Arrays.java:1512)

        at java.util.ArrayList.sort(ArrayList.java:1462)

        at java.util.Collections.sort(Collections.java:177)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.policy.PriorityUtilizationQueueOrderingPolicy.getAssignmentIterator(PriorityUtilizationQueueOrderingPolicy.java:221)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.sortAndGetChildrenAllocationIterator(ParentQueue.java:785)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainersToChildQueues(ParentQueue.java:796)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainers(ParentQueue.java:628)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateOrReserveNewContainers(CapacityScheduler.java:1676)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainerOnSingleNode(CapacityScheduler.java:1614)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainersToNode(CapacityScheduler.java:1768)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.TestCapacitySchedulerPerf$CapacitySchedulerPerf.allocateContainersToNode(TestCapacitySchedulerPerf.java:90)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainersToNode(CapacityScheduler.java:1522)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.schedule(CapacityScheduler.java:571)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler$AsyncScheduleThread.run(CapacityScheduler.java:604)
{quote}


was (Author: samkhan):
Worth mentioning that I ran some of the tests again because of 
java.lang.IllegalArgumentException: Comparison method violates its general 
contract! Searched and found that there are [existing 
jiras|https://issues.apache.org/jira/browse/YARN-10178?jql=project%20%3D%20YARN%20AND%20text%20~%20%22comparison%20method%22]
 with same problem, e.g. YARN-8764, YARN-10178.

Have not investigated further. Adding stack trace for one failed run:
{quote}Exception in thread "Thread-9" java.lang.IllegalArgumentException: 
Comparison method violates its general contract!

        at java.util.TimSort.mergeHi(TimSort.java:899)

        at java.util.TimSort.mergeAt(TimSort.java:516)

        at java.util.TimSort.mergeForceCollapse(TimSort.java:457)

        at java.util.TimSort.sort(TimSort.java:254)

        at java.util.Arrays.sort(Arrays.java:1512)

        at java.util.ArrayList.sort(ArrayList.java:1462)

        at java.util.Collections.sort(Collections.java:177)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.policy.PriorityUtilizationQueueOrderingPolicy.getAssignmentIterator(PriorityUtilizationQueueOrderingPolicy.java:221)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.sortAndGetChildrenAllocationIterator(ParentQueue.java:785)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainersToChildQueues(ParentQueue.java:796)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue.assignContainers(ParentQueue.java:628)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateOrReserveNewContainers(CapacityScheduler.java:1676)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainerOnSingleNode(CapacityScheduler.java:1614)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainersToNode(CapacityScheduler.java:1768)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.TestCapacitySchedulerPerf$CapacitySchedulerPerf.allocateContainersToNode(TestCapacitySchedulerPerf.java:90)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.allocateContainersToNode(CapacityScheduler.java:1522)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler.schedule(CapacityScheduler.java:571)

        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler$AsyncScheduleThread.run(CapacityScheduler.java:604)
{quote}

> LeafQueue: retain user limits cache across assignContainers() calls
> -------------------------------------------------------------------
>
>                 Key: YARN-10390
>                 URL: https://issues.apache.org/jira/browse/YARN-10390
>             Project: Hadoop YARN
>          Issue Type: Improvement
>          Components: capacity scheduler, capacityscheduler
>            Reporter: Muhammad Samir Khan
>            Assignee: Muhammad Samir Khan
>            Priority: Major
>         Attachments: user limit caching profile.pdf
>
>
> Currently, user limits are cached locally in leafQueue.assignContainers call 
> to avoid repeating some steps. This cache can be retained across the calls.
> Will put up a PR soon. Profiling was done using the proposed changes in 
> TestCapacitySchedulerPerf.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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