[ 
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)

Reply via email to