hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andras Bokor (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-14389) Exception handling is incorrect in KerberosName.java
Date Fri, 05 May 2017 18:09:04 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-14389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Andras Bokor updated HADOOP-14389:
    Attachment: HADOOP-14389.01.patch

I have addressed the wrong exceptions with fixing {{KerberosName.Rule#replaceParameters}}
and making {{ruleParser}} stricter.

bq. \[^\\\]\] does not really make sense....
Can be removed by changing some logic in {{KerberosName#parseRules}}. It splits the rules
by new lines.
This also fixes an error message issue. So far in case of error it logged the {{remaining}}
which contains all the rules. According to the new logic it logs only the rule which throws
the exception.

bq. In tests some corner cases are not covered.
I have added all the test cases that came into my mind.

Also I built and replaced hadoop-auth jar on a test cluster.
{code}root@abokor-practice-5:/etc/hadoop-3.0.0-alpha2# /etc/hadoop-3.0.0-alpha2/bin/hadoop
kerbname {nn,dn,rm,nm,jhs}/host.domain@REALM.TLD
Name: nn/host.domain@REALM.TLD to hdfs
Name: dn/host.domain@REALM.TLD to hdfs
Name: rm/host.domain@REALM.TLD to yarn
Name: nm/host.domain@REALM.TLD to yarn
Name: jhs/host.domain@REALM.TLD to mapred{code}

> Exception handling is incorrect in KerberosName.java
> ----------------------------------------------------
>                 Key: HADOOP-14389
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14389
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Andras Bokor
>            Assignee: Andras Bokor
>         Attachments: HADOOP-14389.01.patch
> I found multiple inconsistency:
> Rule: {{RULE:\[2:$1/$2\@$3\](.\*)s/.\*/hdfs/}}
> Principal: {{nn/host.domain@REALM.TLD}}
> Expected exception: {{BadStringFormat: ...3 is out of range...}}
> Actual exception: {{ArrayIndexOutOfBoundsException: 3}}
> ----
> Rule: {{RULE:\[:$1/$2\@$0](.\*)s/.\*/hdfs/}} (Missing num of components)
> Expected: {{IllegalArgumentException}}
> Actual: {{java.lang.NumberFormatException: For input string: ""}}
> ----
> Rule: {{RULE:\[2:$-1/$2\@$3\](.\*)s/.\*/hdfs/}}
> Expected {{BadStringFormat: -1 is outside of valid range...}}
> Actual: {{java.lang.NumberFormatException: For input string: ""}}
> ----
> Rule: {{RULE:\[2:$one/$2\@$3\](.\*)s/.\*/hdfs/}}
> Expected {{java.lang.NumberFormatException: For input string: "one"}}
> Acutal {{java.lang.NumberFormatException: For input string: ""}}
> ----
> In addtion:
> {code}[^\\]]{code}
> does not really make sense in {{ruleParser}}. Most probably it was needed because we
parse the whole rule string and remove the parsed rule from beginning of the string: {{KerberosName#parseRules}}.
This made the regex engine parse wrong without it.
> In addition:
> In tests some corner cases are not covered.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org

View raw message