[
https://issues.apache.org/jira/browse/MAPREDUCE-2764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13094633#comment-13094633
]
Owen O'Malley commented on MAPREDUCE-2764:
------------------------------------------
Daryn,
Your patch doesn't compile because you are using @Override on the cancel/renew
token methods in DistributedFileSystem. I assume you forgot to include
FileSystem in your patch. When delegation tokens were added, there was
agreement that adding those methods to FileSystem wasn't appropriate. We can
re-open that discussion, but it needs to be discussed more widely.
I also assume that the change to fixFontPaths is accidental.
I'm glad to see the move to use methods on Token, I think that is appropriate.
I also like the isRenewable method, although it also controls whether it is
cancelable so probably needs a better name like isManaged.
Please don't remove InterruptedException from APIs. At some point we'll fix RPC
to properly throw InterruptedException when it is waiting.
We've been burned badly before by the idiom of using static blocks to register
types. The ServiceLookup is much better.
Adding a transient field that is lost when going over RPC is problematic from a
maintenance point of view. It also doesn't feel justified, just so that we can
continue to intermingle HFTP delegation tokens with HFTP delegation tokens. It
seems to make much more sense to separate the HFTP tokens out and use the
service field to refer to the HFTP address, in the way it was intended to be
used.
I'm still looking through the patch, but wanted to provide the high level
feedback.
Changing the semantics of JobClient.addAll isn't ok.
> Fix renewal of dfs delegation tokens
> ------------------------------------
>
> Key: MAPREDUCE-2764
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-2764
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Reporter: Daryn Sharp
> Assignee: Daryn Sharp
> Fix For: 0.20.205.0
>
> Attachments: MAPREDUCE-2764-2.patch, MAPREDUCE-2764.patch,
> delegation.patch
>
>
> The JT may have issues renewing hftp tokens which disrupt long distcp jobs.
> The problem is the JT's delegation token renewal code is built on brittle
> assumptions. The token's service field contains only the "ip:port" pair.
> The renewal process assumes that the scheme must be hdfs. If that fails due
> to a {{VersionMismatchException}}, it tries https based on another assumption
> that it must be hftp if it's not hdfs. A number of other exceptions, most
> commonly {{IOExceptions}}, can be generated which fouls up the renewal since
> it won't fallback to https.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira