[ 
https://issues.apache.org/jira/browse/PHOENIX-3891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026838#comment-16026838
 ] 

Hadoop QA commented on PHOENIX-3891:
------------------------------------

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12870125/PHOENIX-3891.001.patch
  against master branch at commit a701600c6a25de5f428fb1a225a5af5a97941924.
  ATTACHMENT ID: 12870125

    {color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

    {color:green}+1 tests included{color}.  The patch appears to include 3 new 
or modified tests.

    {color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

    {color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 
45 warning messages.

    {color:red}-1 release audit{color}.  The applied patch generated 1 release 
audit warnings (more than the master's current 0 warnings).

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines 
longer than 100:
    +        private static final String REALM_EQUIVALENCY_WARNING_MSG = 
"Provided principal does not contan a realm and the default realm cannot be 
determined. Ignoring realm equivalency check.";
+                                if (!currentUser.hasKerberosCredentials() || 
!isSameName(currentUser.getUserName(), principal)) {
+        static boolean isSameName(String currentName, String newName, String 
hostname, String defaultRealm) throws IOException {
+                    newName = 
org.apache.hadoop.security.SecurityUtil.getServerPrincipal(newName, hostname);
+        // NB: We _should_ be able to provide our or krb5.conf for this test 
to use, but this doesn't
+        // seem to want to play nicely with the rest of the tests. Instead, we 
can just provide a default realm
+        assertTrue(ConnectionInfo.isSameName("user/[email protected]", 
"user/localhost", null, "APACHE.ORG"));
+        assertFalse(ConnectionInfo.isSameName("user/[email protected]", 
"user/localhost", null, "APACHE.ORG"));
+        assertTrue(ConnectionInfo.isSameName("[email protected]", 
"[email protected]", null, "APACHE.ORG"));
+        assertTrue(ConnectionInfo.isSameName("user/[email protected]", 
"user/[email protected]", null, "APACHE.ORG"));

    {color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-PHOENIX-Build/915//testReport/
Release audit warnings: 
https://builds.apache.org/job/PreCommit-PHOENIX-Build/915//artifact/patchprocess/patchReleaseAuditWarnings.txt
Javadoc warnings: 
https://builds.apache.org/job/PreCommit-PHOENIX-Build/915//artifact/patchprocess/patchJavadocWarnings.txt
Console output: 
https://builds.apache.org/job/PreCommit-PHOENIX-Build/915//console

This message is automatically generated.

> ConnectionQueryServices leak on auto-Kerberos-login without REALM in URL
> ------------------------------------------------------------------------
>
>                 Key: PHOENIX-3891
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3891
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Critical
>             Fix For: 4.11.0
>
>         Attachments: PHOENIX-3891.001.patch, PHOENIX-3891.002.patch
>
>
> PHOENIX-3189 fixed some logic in construction of a {{ConnectionInfo}} to, 
> when requested by the user, perform the Kerberos login and then construct and 
> cache the ConnectionInfo->ConnectionQueryServices pair.
> This approach only works when the principal that the user provides in the 
> JDBC url is exactly what UGI returns as the short name. Logically equivalent 
> principals will result in re-logging in each time and leaking 
> ConnectionQueryService instances (and thus HConnection and ZooKeeper objects).
> For example, with Kerberos principals there is a default realm which is 
> implied by krb5.conf when not explicitly provided. Thus: {{elserj}} and 
> {{elserj@APACHE}} would be considered logically equivalent (when the default 
> realm is "APACHE"). We should expand the {{isSameName}} check in 
> ConnectionInfo to be a bit smarter.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to