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

Eric Payne commented on YARN-8292:
----------------------------------

Thanks for the updated patch, [~leftnoteasy].

The changes seem to be over-preempting. In the unit test, the request is for 1 
of each resource type, but it is preempting 2 containers.
{code:java|title=test3ResourceTypesInterQueuePreemption}
...
    String queuesConfig =
        // guaranteed,max,used,pending
        "root(=[30:18:6 30:18:6 12:12:6 1:1:1]);" + //root
            "-a(=[10:6:2 10:6:2 6:6:3 0:0:0]);" + // a
            "-b(=[10:6:2 10:6:2 6:6:3 0:0:0]);" + // b
            "-c(=[10:6:2 10:6:2 0:0:0 1:1:1])"; // c
...
    verify(mDisp, times(1)).handle(
        argThat(new 
TestProportionalCapacityPreemptionPolicy.IsPreemptionRequestFor(getAppAttemptId(1))));
{code}
NOTE: if I add the following check to verify that a container was not preempted 
from app2, it fails:
{code:java}
    verify(mDisp, times(0)).handle(
        argThat(new 
TestProportionalCapacityPreemptionPolicy.IsPreemptionRequestFor(getAppAttemptId(2))));
{code}
Since the resource request is {{<1,1,1>}}, I would expect only 1 container to 
be preempted. However, in the unit test logs, I see the following:
{code:java}
2018-05-17 19:01:00,372 DEBUG [main] 
capacity.ProportionalCapacityPreemptionPolicy 
(ProportionalCapacityPreemptionPolicy.java:preemptOrkillSelectedContainerAfterWait(314))
 - Starting to preempt containers for selectedCandidates and size:2
{code}
 

> Fix the dominant resource preemption cannot happen when some of the resource 
> vector becomes negative
> ----------------------------------------------------------------------------------------------------
>
>                 Key: YARN-8292
>                 URL: https://issues.apache.org/jira/browse/YARN-8292
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: yarn
>            Reporter: Sumana Sathish
>            Assignee: Wangda Tan
>            Priority: Critical
>         Attachments: YARN-8292.001.patch, YARN-8292.002.patch, 
> YARN-8292.003.patch
>
>
> This is an example of the problem: 
>   
> {code}
>     //   guaranteed,  max,    used,   pending
>     "root(=[30:18:6  30:18:6 12:12:6 1:1:1]);" + //root
>         "-a(=[10:6:2 10:6:2  6:6:3   0:0:0]);" + // a
>         "-b(=[10:6:2 10:6:2  6:6:3   0:0:0]);" + // b
>         "-c(=[10:6:2 10:6:2  0:0:0   1:1:1])"; // c
> {code}
> There're 3 resource types. Total resource of the cluster is 30:18:6
> For both of a/b, there're 3 containers running, each of container is 2:2:1.
> Queue c uses 0 resource, and have 1:1:1 pending resource.
> Under existing logic, preemption cannot happen.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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