[
https://issues.apache.org/jira/browse/HADOOP-15593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16553838#comment-16553838
]
Xiao Chen edited comment on HADOOP-15593 at 7/24/18 5:57 AM:
-------------------------------------------------------------
Thanks [~gabor.bota] and [~eyang]. Workaround the NPE sounds good to me (but
sad). :)
I'm also looking at this particular code block:
{code}
try {
Date endTime = tgt.getEndTime();
if (tgt != null && endTime != null && !tgt.isDestroyed()) {
tgtEndTime = endTime.getTime();
}
} catch (NullPointerException npe) {
{code}
- Do we really need the tgt==null check at all? What's the scenario that tgt
can be null here? (If it's needed, the check should happen before
{{getEndTime}} call, but it doesn't look possible to me that tgt can be null.
- Suggest to make the NPE try-catch strictly around the line we're trying to
workaround: tgt.getEndTime(); Then also add a pointer to the JDK issue
JDK-8147772 in the comment, to save future people the time to search on this
jira. Should also explain the fact that the NPE is only possible prior to the
JDK fix.
- We also need a unit test for this. This can be done by using a mocked tgt
was (Author: xiaochen):
I'm also looking at this particular code block:
{code}
try {
Date endTime = tgt.getEndTime();
if (tgt != null && endTime != null && !tgt.isDestroyed()) {
tgtEndTime = endTime.getTime();
}
} catch (NullPointerException npe) {
{code}
- Do we really need the tgt==null check at all? What's the scenario that tgt
can be null here? (If it's needed, the check should happen before
{{getEndTime}} call, but it doesn't look possible to me that tgt can be null.
- Suggest to make the NPE try-catch strictly around the line we're trying to
workaround: tgt.getEndTime(); Then also add a pointer to the JDK issue
JDK-8147772 in the comment, to save future people the time to search on this
jira. Should also explain the fact that the NPE is only possible prior to the
JDK fix.
- We also need a unit test for this. This can be done by using a mocked tgt
> UserGroupInformation TGT renewer throws NPE
> -------------------------------------------
>
> Key: HADOOP-15593
> URL: https://issues.apache.org/jira/browse/HADOOP-15593
> Project: Hadoop Common
> Issue Type: Bug
> Components: security
> Affects Versions: 3.0.0
> Reporter: Wei-Chiu Chuang
> Assignee: Gabor Bota
> Priority: Blocker
> Attachments: HADOOP-15593.001.patch, HADOOP-15593.002.patch,
> HADOOP-15593.003.patch
>
>
> Found the following NPE thrown in UGI tgt renewer. The NPE was thrown within
> an exception handler so the original exception was hidden, though it's likely
> caused by expired tgt.
> {noformat}
> 18/07/02 10:30:57 ERROR util.SparkUncaughtExceptionHandler: Uncaught
> exception in thread Thread[TGT Renewer for [email protected],5,main]
> java.lang.NullPointerException
> at
> javax.security.auth.kerberos.KerberosTicket.getEndTime(KerberosTicket.java:482)
> at
> org.apache.hadoop.security.UserGroupInformation$1.run(UserGroupInformation.java:894)
> at java.lang.Thread.run(Thread.java:748){noformat}
> Suspect it's related to [https://bugs.openjdk.java.net/browse/JDK-8154889].
> The relevant code was added in HADOOP-13590. File this jira to handle the
> exception better.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]