[ https://issues.apache.org/jira/browse/YARN-582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13650337#comment-13650337 ]
Bikas Saha commented on YARN-582: --------------------------------- Move into a common function? {code} Credentials credentials = new Credentials(); Token<ApplicationTokenIdentifier> appToken = appAttempt.getApplicationToken(); if(appToken != null){ credentials.addToken(appToken.getService(), appToken); } Token<ClientTokenIdentifier> clientToken = appAttempt.getClientToken(); if(clientToken != null){ credentials.addToken(clientToken.getService(), clientToken); } ApplicationAttemptState attemptState = new ApplicationAttemptState(appAttempt.getAppAttemptId(), appAttempt.getMasterContainer(), credentials); {code} We should not catch and ignore the exception. Lets catch it in existing catch block so that attempt gets notified of error. {code} try { credentials.writeTokenStorageToStream(dob); } catch (IOException e) { LOG.warn("Error converting credentials to bytebuffer" + " while storing attempt: " + attemptState.getAttemptId()); } {code} Lets add "because running attempts are rebooted" {code} // For now, no need to populate tokens back to // ApplicationTokenSecretManager. {code} Why not simply create it once in the RMAppAttemptImpl and re-use it like earlier? {code} origTrackingUrl = this.currentAttempt.getOriginalTrackingUrl(); Token<ClientTokenIdentifier> attemptClientToken = this.currentAttempt.getClientToken(); if (attemptClientToken != null) { clientToken = BuilderUtils.newClientToken(attemptClientToken.getIdentifier(), attemptClientToken.getKind().toString(), attemptClientToken .getPassword(), attemptClientToken.getService().toString()); } {code} > Restore appToken for app attempt after RM restart > ------------------------------------------------- > > Key: YARN-582 > URL: https://issues.apache.org/jira/browse/YARN-582 > Project: Hadoop YARN > Issue Type: Sub-task > Components: resourcemanager > Reporter: Bikas Saha > Assignee: Jian He > Attachments: YARN-582.1.patch, YARN-582.2.patch, YARN-582.3.patch, > YARN-582.4.patch, YARN-582.5.patch > > > These need to be saved and restored on a per app attempt basis. This is > required only when work preserving restart is implemented for secure > clusters. In non-preserving restart app attempts are killed and so this does > not matter. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira