[ https://issues.apache.org/jira/browse/YARN-2456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14127353#comment-14127353 ]
Xuan Gong commented on YARN-2456: --------------------------------- I think that both of ways (sort the ApplicationStates based on ApplicationId or ApplicationState's submitTime) are fine. Since all processes are asynchronous, the corner case is still exist. [~jianhe] What do you think ? > Possible deadlock in CapacityScheduler when RM is recovering apps > ----------------------------------------------------------------- > > Key: YARN-2456 > URL: https://issues.apache.org/jira/browse/YARN-2456 > Project: Hadoop YARN > Issue Type: Sub-task > Components: resourcemanager > Reporter: Jian He > Assignee: Jian He > Attachments: YARN-2456.1.patch > > > Consider this scenario: > 1. RM is configured with a single queue and only one application can be > active at a time. > 2. Submit App1 which uses up the queue's whole capacity > 3. Submit App2 which remains pending. > 4. Restart RM. > 5. App2 is recovered before App1, so App2 is added to the activeApplications > list. Now App1 remains pending (because of max-active-app limit) > 6. All containers of App1 are now recovered when NM registers, and use up the > whole queue capacity again. > 7. Since the queue is full, App2 cannot proceed to allocate AM container. > 8. In the meanwhile, App1 cannot proceed to become active because of the > max-active-app limit -- This message was sent by Atlassian JIRA (v6.3.4#6332)