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