[ https://issues.apache.org/jira/browse/YARN-3546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14520706#comment-14520706 ]
sandflee commented on YARN-3546: -------------------------------- [~jianhe], thanks for your explanation, I stil have one doubt, waitForSchedulerAppAttemptAdded(ApplicationAttemptId attemptId) in MockRM maybe expect to waiting RMAppAttempt with attemptId to be SCHEDULED, actually It'll be true after first appAttempt is SCHEDULED. It'll cause launch AM failed before YARN-3533. maybe waitForSchedulerAppAttemptAdded should be corrected as below: int tick = 0; // Wait for at most 5 sec SchedulerApplicationAttempt attempt = ((AbstractYarnScheduler)rm.getResourceScheduler()).getApplicationAttempt(attemptId); while (null == attempt && attempt.getApplicationAttemptId().equals(attemptId) == false && tick < 50) { Thread.sleep(100); if (tick % 10 == 0) { System.out.println("waiting for SchedulerApplicationAttempt=" + attemptId + " added."); } tick++; attempt = ((AbstractYarnScheduler)rm.getResourceScheduler()).getApplicationAttempt(attemptId); } so why waitForSchedulerAppAttemptAdded is not done as expected, I thought the deep reason is getApplicationAttempt(attemptId) is misleading, Especially for the scheduler newbies , we may expect it to return corresponding sheduler app attempt with attemptId. That's the reason why I suggest to rename it, please correct me if anything wrong, thanks. > AbstractYarnScheduler.getApplicationAttempt seems misleading, and there're > some misuse of it > --------------------------------------------------------------------------------------------- > > Key: YARN-3546 > URL: https://issues.apache.org/jira/browse/YARN-3546 > Project: Hadoop YARN > Issue Type: Bug > Components: resourcemanager > Reporter: sandflee > > I'm not familiar with scheduler, with first eyes, I thought this func > returns the schdulerAppAttempt info corresponding to appAttemptId, but > actually it returns the current schdulerAppAttempt. > It seems misled others too, such as > TestWorkPreservingRMRestart.waitForNumContainersToRecover > MockRM.waitForSchedulerAppAttemptAdded > should I rename it to T getCurrentSchedulerApplicationAttempt(ApplicationId > applicationid) > or returns null if current attempt id not equals to the request attempt id ? > comment preferred! -- This message was sent by Atlassian JIRA (v6.3.4#6332)