[
https://issues.apache.org/jira/browse/HADOOP-12529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14982219#comment-14982219
]
Yong Zhang commented on HADOOP-12529:
-------------------------------------
Is UserGroupInformation.user OK for comparing?
> UserGroupInformation equals method depend on the subject object address
> -----------------------------------------------------------------------
>
> Key: HADOOP-12529
> URL: https://issues.apache.org/jira/browse/HADOOP-12529
> Project: Hadoop Common
> Issue Type: Bug
> Components: security
> Affects Versions: 2.7.1
> Reporter: wangwenli
>
> my question is why UserGroupInformation equals method depend on the
> subject object?
> try below code which is extract from HiveMetaStore:
> {code:title=TestUgi.java|borderStyle=solid}
> UserGroupInformation clientUgi = null;
> UserGroupInformation clientUgi2 = null;
> try {
> clientUgi = UserGroupInformation.createProxyUser("user2",
> UserGroupInformation.getLoginUser());
> clientUgi2 = UserGroupInformation.createProxyUser("user2",
> UserGroupInformation.getLoginUser());
> if (clientUgi.equals(clientUgi2)) {
> System.out.println("==");
> } else {
> System.out.println("!="); // strangely this will be hit
> }
> } catch (IOException e1) {
> e1.printStackTrace();
> }
> {code}
> i found that it is because the equal method from UserGroupInformation
> is compare on subject object ref : subject == ((UserGroupInformation)
> o).subject; .
> as you know, ipc.Client connect to namenode,
> connections.get(ConnectionId) this code will try to reuse the same socket
> to namenode, but because of ConnectionId's equal depend on ugi equal, which
> will cause connections.get(ConnectionId) cann't get the same socket,
> suppose many connect to HiveMetaStore, then many connection to Namenode will
> established.
> so my doubts is why UserGroupInformation is compare on subject object
> ref : subject == ((UserGroupInformation) o).subject, it should compare on
> subject's principal, am i right?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)