[
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}/[email protected]
Name: nn/[email protected] to hdfs
Name: dn/[email protected] to hdfs
Name: rm/[email protected] to yarn
Name: nm/[email protected] to yarn
Name: jhs/[email protected] 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/[email protected]}}
> 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: [email protected]
For additional commands, e-mail: [email protected]