[
https://issues.apache.org/jira/browse/HADOOP-12664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15117774#comment-15117774
]
Arpit Agarwal edited comment on HADOOP-12664 at 1/26/16 7:14 PM:
-----------------------------------------------------------------
Thanks for picking this up Ray. Some comments in addition to what Steve
mentioned:
# {{spawnAutoRenewalThreadForUserCreds}} need not invoke
{{verifyKinitExecutable}} inside the while loop. Once at initialization is
sufficient.
# The {{bgp.exists}} check should only be triggered for absolute paths (line
984). The current directory is not included in the PATH on well-configured
systems.
# We should not throw FileNotFoundException from the for loop before checking
all the directories in the path (line 999).
# Redundant initializations of finalExec, pathFileFound, pathFileExecutable in
{{verifyKinitExecutable}}.
# Nitpick: We can use the FileNotFoundException constructor that excepts a path
(lines 986, 999, 1005).
# Nitpick: We can use [this
constructor|https://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String,%20java.lang.String)]
instead of the following code. {code}
String curExec = new String(pe + File.separator + executable);
File pfp = new File(curExec);
{code}
was (Author: arpitagarwal):
Thanks for picking this up Ray. Some comments in addition to what Steve
mentioned:
# {{spawnAutoRenewalThreadForUserCreds}} need not invoke
{{verifyKinitExecutable}} inside the while loop. Once at initialization is
sufficient.
# The {{bgp.exists}} check should only be triggered for absolute paths (line
984). The current directory is not included in the PATH on well-configured
systems.
# We should not throw FileNotFoundException from the for loop before checking
all the directories in the path (line 999).
# Redundant initializations of finalExec, pathFileFound, pathFileExecutable in
{{verifyKinitExecutable}}.
# Nitpick: We can use the FileNotFoundException constructor that excepts a path
(lines 986, 999, 1005).
# Nitpick: We can use this constructor instead of the following code.
https://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.lang.String,%20java.lang.String)
{code}
String curExec = new String(pe + File.separator + executable);
File pfp = new File(curExec);
{code}
> UGI auto-renewer does not verify kinit availability during initialization
> -------------------------------------------------------------------------
>
> Key: HADOOP-12664
> URL: https://issues.apache.org/jira/browse/HADOOP-12664
> Project: Hadoop Common
> Issue Type: Improvement
> Reporter: Arpit Agarwal
> Assignee: Ray Chiang
> Priority: Minor
> Attachments: HADOOP-12664.001.patch
>
>
> UGI auto-renewer does not verify that {{hadoop.kerberos.kinit.command}} is in
> the path during initialization. If not available, the auto-renewal thread
> will hit an error during TGT renewal. We recently saw a case where it
> manifests as transient errors during client program execution which can be
> hard to track down without UGI logging.
> It seems like {{kinit}} availability should be verified during initialization
> to make the behavior more predictable.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)