Zhijie Shen created YARN-2936:

             Summary: YARNDelegationTokenIdentifier doesn't set proto.builder 
                 Key: YARN-2936
                 URL: https://issues.apache.org/jira/browse/YARN-2936
             Project: Hadoop YARN
          Issue Type: Bug
            Reporter: Zhijie Shen

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

Reply via email to