You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Andras Bokor (JIRA)" <ji...@apache.org> on 2017/05/05 18:09:04 UTC
[jira] [Updated] (HADOOP-14389) Exception handling is incorrect in
KerberosName.java
[ 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
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org