[
https://issues.apache.org/jira/browse/HADOOP-15808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16634435#comment-16634435
]
Steve Loughran commented on HADOOP-15808:
-----------------------------------------
There's a related issue, which is most (all?) uses of
{{Token.decodeIdentifier()}} assume that the return value is never null, but it
can be if the Kind of the token isn't known. This will trigger an NPE.
Proposed:
* have decodeIdentifier fail with a useful error, including the token kind,
raise an IllegalStateException
* review uses of the code to see if there is anything which does actually look
out for null, tune it for the new world
It'd be nice if we correlate a failure to load a class with an unknown token
identifier impl later, but we can't because you can't determine the kind of an
implementation if that load doesn't work. Pity.
> Harden Token service loader use
> -------------------------------
>
> Key: HADOOP-15808
> URL: https://issues.apache.org/jira/browse/HADOOP-15808
> Project: Hadoop Common
> Issue Type: Improvement
> Components: security
> Affects Versions: 2.9.1, 3.1.2
> Reporter: Steve Loughran
> Assignee: Steve Loughran
> Priority: Major
>
> The Hadoop token service loading (identifiers, renewers...) works provided
> there's no problems loading any registered implementation. If there's a
> classloading or classcasting problem, the exception raised will stop all
> token support working; possibly the application not starting.
> This matters for S3A/HADOOP-14556 as things may not load if aws-sdk isn't on
> the classpath. It probably lurks in the wasb/abfs support too, but things
> have worked there because the installations with DT support there have always
> had correctly set up classpaths.
> Fix: do what we did for the FS service loader. Catch failures to instantiate
> a service provider impl and skip it
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]