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)