[ https://issues.apache.org/jira/browse/YARN-2209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14078046#comment-14078046 ]
Jian He commented on YARN-2209: ------------------------------- {code} try { ams.allocate(...); catch (Exception e) { ams.finishApplicationMaster(...) } if (response is shutdown/resync) { // cleanup and reboot ... } {code} The example you mentioned here will continue to work because ams.finishApplicationMaster won't be able to go through. Thus, AM container eventually gets killed and RM will still retry this application. So the main point is, regardless how application is earlier handling the AMCommand, it should continue to work with this change. Existing YARN applications will not break because of this. In fact, I think AMCommand#shutdown itself is a nondeterministic command, because AM may possibly get killed before it can do anything to process this command . Application should not rely on this command. > Replace AM resync/shutdown command with corresponding exceptions > ---------------------------------------------------------------- > > Key: YARN-2209 > URL: https://issues.apache.org/jira/browse/YARN-2209 > Project: Hadoop YARN > Issue Type: Improvement > Reporter: Jian He > Assignee: Jian He > Attachments: YARN-2209.1.patch, YARN-2209.2.patch, YARN-2209.3.patch, > YARN-2209.4.patch, YARN-2209.5.patch > > > YARN-1365 introduced an ApplicationMasterNotRegisteredException to indicate > application to re-register on RM restart. we should do the same for > AMS#allocate call also. -- This message was sent by Atlassian JIRA (v6.2#6252)