[ https://issues.apache.org/jira/browse/YARN-2936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14260321#comment-14260321 ]
Zhijie Shen commented on YARN-2936: ----------------------------------- Or to keep simple, for {code} builder.setOwner(getOwner().toString()); builder.setRenewer(getRenewer().toString()); builder.setRealUser(getRealUser().toString()); builder.setIssueDate(getIssueDate()); builder.setMaxDate(getMaxDate()); builder.setSequenceNumber(getSequenceNumber()); builder.setMasterKeyId(getMasterKeyId()); {code} Can we do something like {code} if (builder.getOwner() is not equal to getOwner()) { builder.setOwner(getOwner().toString()); } {code} To only set builder when the value is updated. > YARNDelegationTokenIdentifier doesn't set proto.builder now > ----------------------------------------------------------- > > Key: YARN-2936 > URL: https://issues.apache.org/jira/browse/YARN-2936 > Project: Hadoop YARN > Issue Type: Bug > Reporter: Zhijie Shen > Assignee: Varun Saxena > Attachments: YARN-2936.001.patch, YARN-2936.002.patch, > YARN-2936.003.patch > > > After YARN-2743, the setters are removed from YARNDelegationTokenIdentifier, > such that when constructing a object which extends > YARNDelegationTokenIdentifier, proto.builder is not set at all. Later on, > when we call getProto() of it, we will just get an empty proto object. > It seems to do no harm to the production code path, as we will always call > getBytes() before using proto to persist the DT in the state store, when we > generating the password. > I think the setter is removed to avoid duplicating setting the fields why > getBytes() is called. However, YARNDelegationTokenIdentifier doesn't work > properly alone. YARNDelegationTokenIdentifier is tightly coupled with the > logic in secretManager. It's vulnerable if something is changed at > secretManager. For example, in the test case of YARN-2837, I spent time to > figure out we need to execute getBytes() first to make sure the testing DTs > can be properly put into the state store. -- This message was sent by Atlassian JIRA (v6.3.4#6332)