You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@slider.apache.org by "Jonathan Maron (JIRA)" <ji...@apache.org> on 2014/09/17 22:08:33 UTC

[jira] [Commented] (SLIDER-437) Re-login is needed to ensure the TGT is up to date

    [ https://issues.apache.org/jira/browse/SLIDER-437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14137880#comment-14137880 ] 

Jonathan Maron commented on SLIDER-437:
---------------------------------------

Agreed.  I imagine that the UGI/subject for the renewer may expire before the renew is invoked, so the fix will more than likely be to recreate the renewer.

> Re-login is needed to ensure the TGT is up to date
> --------------------------------------------------
>
>                 Key: SLIDER-437
>                 URL: https://issues.apache.org/jira/browse/SLIDER-437
>             Project: Slider
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Jonathan Maron
>
> Here is snippet of AppMaster log on a secure cluster:
> {code}
> 14/09/16 16:08:17 ERROR appmaster.SliderAppMaster: Exception in AmExecutor-006: java.io.IOException: Can't get new delegation token 
> java.io.IOException: Can't get new delegation token 
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager$RenewAction.getNewToken(FsDelegationTokenManager.java:251)
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager$RenewAction.execute(FsDelegationTokenManager.java:217)
> 	at org.apache.slider.server.appmaster.actions.RenewingAction.execute(RenewingAction.java:88)
> 	at org.apache.slider.server.appmaster.actions.QueueExecutor.run(QueueExecutor.java:70)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: "hor9n00.gq1.ygridcore.net/68.142.247.19"; destination host is: "hor12n12.gq1.ygridcore.net":8020; 
> 	at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:764)
> 	at org.apache.hadoop.ipc.Client.call(Client.java:1423)
> 	at org.apache.hadoop.ipc.Client.call(Client.java:1372)
> 	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:219)
> 	at com.sun.proxy.$Proxy17.getDelegationToken(Unknown Source)
> 	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getDelegationToken(ClientNamenodeProtocolTranslatorPB.java:902)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
> 	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
> 	at com.sun.proxy.$Proxy18.getDelegationToken(Unknown Source)
> 	at org.apache.hadoop.hdfs.DFSClient.getDelegationToken(DFSClient.java:1001)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.getDelegationToken(DistributedFileSystem.java:1316)
> 	at org.apache.hadoop.fs.FileSystem.collectDelegationTokens(FileSystem.java:529)
> 	at org.apache.hadoop.fs.FileSystem.addDelegationTokens(FileSystem.java:507)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.addDelegationTokens(DistributedFileSystem.java:2002)
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager$RenewAction$4.run(FsDelegationTokenManager.java:235)
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager$RenewAction$4.run(FsDelegationTokenManager.java:1)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:415)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager$RenewAction.getNewToken(FsDelegationTokenManager.java:232)
> 	... 6 more
> Caused by: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
> 	at org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:680)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:415)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> 	at org.apache.hadoop.ipc.Client$Connection.handleSaslConnectionFailure(Client.java:643)
> 	at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:729)
> 	at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
> 	at org.apache.hadoop.ipc.Client.getConnection(Client.java:1471)
> 	at org.apache.hadoop.ipc.Client.call(Client.java:1390)
> 	... 28 more
> Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
> 	at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:212)
> 	at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:413)
> 	at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:553)
> 	at org.apache.hadoop.ipc.Client$Connection.access$1800(Client.java:368)
> 	at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:721)
> 	at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:717)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:415)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> 	at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:716)
> 	... 31 more
> Caused by: GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)
> 	at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:147)
> 	at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:121)
> 	at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:187)
> 	at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:223)
> 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:212)
> 	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
> 	at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:193)
> 	... 40 more
> 14/09/16 16:08:18 INFO appmaster.SliderAppMaster: Triggering shutdown of the AM: java.io.IOException: Can't get new delegation token 
> 14/09/16 16:08:18 INFO hdfs.DFSClient: Cancelling HDFS_DELEGATION_TOKEN token 38 for hdfs on 68.142.247.223:8020
> 14/09/16 16:08:18 WARN ipc.Client: Exception encountered while connecting to the server : org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (HDFS_DELEGATION_TOKEN token 38 for hdfs) is expired
> 14/09/16 16:08:18 INFO appmaster.SliderAppMaster: Error cancelling HDFS delegation token
> org.apache.hadoop.security.token.SecretManager$InvalidToken: token (HDFS_DELEGATION_TOKEN token 38 for hdfs) is expired
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> 	at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
> 	at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:73)
> 	at org.apache.hadoop.hdfs.DFSClient$Renewer.cancel(DFSClient.java:1120)
> 	at org.apache.hadoop.security.token.Token.cancel(Token.java:387)
> 	at org.apache.slider.server.services.security.FsDelegationTokenManager.cancelDelegationToken(FsDelegationTokenManager.java:115)
> 	at org.apache.slider.server.appmaster.SliderAppMaster.finish(SliderAppMaster.java:1078)
> 	at org.apache.slider.server.appmaster.SliderAppMaster.createAndRunCluster(SliderAppMaster.java:816)
> 	at org.apache.slider.server.appmaster.SliderAppMaster.runService(SliderAppMaster.java:483)
> 	at org.apache.slider.core.main.ServiceLauncher.launchService(ServiceLauncher.java:186)
> 	at org.apache.slider.core.main.ServiceLauncher.launchServiceRobustly(ServiceLauncher.java:471)
> 	at org.apache.slider.core.main.ServiceLauncher.launchServiceAndExit(ServiceLauncher.java:401)
> 	at org.apache.slider.core.main.ServiceLauncher.serviceMain(ServiceLauncher.java:626)
> 	at org.apache.slider.server.appmaster.SliderAppMaster.main(SliderAppMaster.java:1899)
> Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (HDFS_DELEGATION_TOKEN token 38 for hdfs) is expired
> 	at org.apache.hadoop.ipc.Client.call(Client.java:1419)
> 	at org.apache.hadoop.ipc.Client.call(Client.java:1372)
> 	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:219)
> 	at com.sun.proxy.$Proxy17.cancelDelegationToken(Unknown Source)
> 	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.cancelDelegationToken(ClientNamenodeProtocolTranslatorPB.java:931)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
> 	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
> 	at com.sun.proxy.$Proxy18.cancelDelegationToken(Unknown Source)
> 	at org.apache.hadoop.hdfs.DFSClient$Renewer.cancel(DFSClient.java:1118)
> 	... 10 more
> {code}
> re-login should be done to ensure the TGT is up to date.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)