[
https://issues.apache.org/jira/browse/YARN-3263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
zhihai xu resolved YARN-3263.
-----------------------------
Resolution: Not a Problem
This is not an issue.
tokens.rewind() is called before credentials.readTokenStorageStream(buf).
This will have the same effect as rewind after readTokenStorageStream.
Also no other place accesses the tokens except parseCredentials.
> ContainerManagerImpl#parseCredentials don't rewind the ByteBuffer after
> credentials.readTokenStorageStream
> ----------------------------------------------------------------------------------------------------------
>
> Key: YARN-3263
> URL: https://issues.apache.org/jira/browse/YARN-3263
> Project: Hadoop YARN
> Issue Type: Bug
> Components: nodemanager
> Reporter: zhihai xu
> Assignee: zhihai xu
>
> ContainerManagerImpl#parseCredentials don't rewind the ByteBuffer after
> credentials.readTokenStorageStream. So the next time if we access Tokens, we
> will have EOFException.
> The following is the code for parseCredentials in ContainerManagerImpl.
> {code}
> private Credentials parseCredentials(ContainerLaunchContext launchContext)
> throws IOException {
> Credentials credentials = new Credentials();
> // //////////// Parse credentials
> ByteBuffer tokens = launchContext.getTokens();
> if (tokens != null) {
> DataInputByteBuffer buf = new DataInputByteBuffer();
> tokens.rewind();
> buf.reset(tokens);
> credentials.readTokenStorageStream(buf);
> if (LOG.isDebugEnabled()) {
> for (Token<? extends TokenIdentifier> tk :
> credentials.getAllTokens()) {
> LOG.debug(tk.getService() + " = " + tk.toString());
> }
> }
> }
> // //////////// End of parsing credentials
> return credentials;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)