[ https://issues.apache.org/jira/browse/HDFS-4951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Kanter updated HDFS-4951: -------------------------------- Attachment: HDFS-4951.patch Instead of essentially redoing the delegation token renewer (and related) code from WebHDFS for HttpFS, and because the server is using WebHDFSFileSystem anyway, I think the best and simplest solution is to make HttpFS use the same delegation token kind as WebHDFS is using. The patch simply changes the token kind that HttpFS's DelegationTokenIdentifier is using from "HTTPFS_DELEGATION_TOKEN" to "WEBHDFS delegation". I manually verified that using the FsShell with HttpFS now works properly. > FsShell commands using secure httpfs throw exceptions due to missing > TokenRenewer > --------------------------------------------------------------------------------- > > Key: HDFS-4951 > URL: https://issues.apache.org/jira/browse/HDFS-4951 > Project: Hadoop HDFS > Issue Type: Bug > Components: security > Affects Versions: 3.0.0 > Reporter: Robert Kanter > Assignee: Robert Kanter > Attachments: HDFS-4951.patch > > > It looks like there isn't a {{TokenRenewer}} for HttpFS delegation tokens > ({{HTTPFS_DELEGATION_TOKENS}} tokens, so when it goes to cancel the token, it > throws an exception: > {noformat} > $ hadoop fs -ls webhdfs://host:14000 > // File listing omitted > 13/06/21 13:09:04 WARN token.Token: No TokenRenewer defined for token kind > HTTPFS_DELEGATION_TOKEN > 13/06/21 13:09:04 WARN util.ShutdownHookManager: ShutdownHook > 'ClientFinalizer' failed, java.lang.UnsupportedOperationException: Token > cancel is not supported for HTTPFS_DELEGATION_TOKEN tokens > java.lang.UnsupportedOperationException: Token cancel is not supported for > HTTPFS_DELEGATION_TOKEN tokens > at > org.apache.hadoop.security.token.Token$TrivialRenewer.cancel(Token.java:417) > at org.apache.hadoop.security.token.Token.cancel(Token.java:382) > at > org.apache.hadoop.fs.DelegationTokenRenewer$RenewAction.cancel(DelegationTokenRenewer.java:146) > at > org.apache.hadoop.fs.DelegationTokenRenewer$RenewAction.access$200(DelegationTokenRenewer.java:58) > at > org.apache.hadoop.fs.DelegationTokenRenewer.removeRenewAction(DelegationTokenRenewer.java:233) > at > org.apache.hadoop.hdfs.web.WebHdfsFileSystem.close(WebHdfsFileSystem.java:790) > at org.apache.hadoop.fs.FileSystem$Cache.closeAll(FileSystem.java:2398) > at > org.apache.hadoop.fs.FileSystem$Cache$ClientFinalizer.run(FileSystem.java:2414) > at > org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54) > {noformat} > WebHDFS doesn't have this problem because it has a {{TokenRenewer}} for its > delegation tokens ({{"WEBHDFS delegation"}} tokens). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira