Ashwin Shankar commented on YARN-3176:

bq. In this case, MaxRunningAppEnforcer could end up letting more apps running 
in the child queues.
Are you sure about this ? if queueMaxAppsDefault is set to 50 and the child 
does not have maxApps set, then their maxApps would be taken as 50, which is 
true like you said, but that doesn't mean they can run 50. They wouldn't be 
able to run more than 25, which is their parent's maxApps, since every 
application submitted (FS.addApplicationAttempt()) has to go through 
MaxRunningAppEnforcer.canAppBeRunnable(), which would recursively look and see 
if the new app would violate maxApp at any of its queue's ancestors, which 
means the child would be limited to 25 apps, not 50, no ?

    // Check queue and all parent queues
    while (queue != null) {
      int queueMaxApps = allocConf.getQueueMaxApps(queue.getName());
      if (queue.getNumRunnableApps() >= queueMaxApps) {
        return false;
      queue = queue.getParent();

Yes I agree that we do need something to fix the UI, but I don't believe we are 
fixing the an incorrect behavior of "maxapps" logic.

> In Fair Scheduler, child queue should inherit maxApp from its parent
> --------------------------------------------------------------------
>                 Key: YARN-3176
>                 URL: https://issues.apache.org/jira/browse/YARN-3176
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Siqi Li
>            Assignee: Siqi Li
>         Attachments: YARN-3176.v1.patch, YARN-3176.v2.patch
> if the child queue does not have a maxRunningApp limit, it will use the 
> queueMaxAppsDefault. This behavior is not quite right, since 
> queueMaxAppsDefault is normally a small number, whereas some parent queues do 
> have maxRunningApp set to be more than the default

This message was sent by Atlassian JIRA

Reply via email to