[
https://issues.apache.org/jira/browse/SQOOP-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14233880#comment-14233880
]
Richard commented on SQOOP-1748:
--------------------------------
[~vybs], [~vinothchandar], thanks all for your feedback. I have investigated
this issue and let me to clarify it.
The SPNEGO process is showed below:
1. send request to the server without any credential at the beginning, and
receive the response from the server.
2. if the server is non-Kerberos/Simple authentication type, then the response
will be 200 with all result requested. Then the client does need to do any
Kerberos (keytab/principal) check process, and the process is over.
3. if the server is Kerberos authentication type, the the response will be 401
(HTTP_UNAUTHORIZED). Then the client will do SPNEGO sequence (try to use
{{GSSManager}} to get valid keytab/principal from ticket cache generated by
{{kinit}}), and re-send request with these credential to the server again.
The error message
{code}
Exception: org.apache.sqoop.common.SqoopException Message: CLIENT_0004:Unable
to find valid Kerberos ticket cache (kinit)
{code}
means that it fails to get valid keytab/principal from ticket cache generated
by {{kinit}}, because {{kinit}} command has not run before.
So, my guess is that: the port address was bind by another HTTP host which uses
Kerberos as authentication type. Sqoop server failed to start due to conflict
about port address, so the server did not start actually. When running command
line to get info using Sqoop client, the client connected to the former HTTP
host with Kerberos authentication type in fact. So the response would be 401
(HTTP_UNAUTHORIZED), then the client tried to get valid Kerberos ticket cache,
and failed with the error message {{CLIENT_0004}} before
> Sqoop2: Client throws NPE when misconfigured for Kerberos
> ---------------------------------------------------------
>
> Key: SQOOP-1748
> URL: https://issues.apache.org/jira/browse/SQOOP-1748
> Project: Sqoop
> Issue Type: Bug
> Components: sqoop2-shell
> Affects Versions: 1.99.5
> Reporter: Abraham Elmahrek
> Assignee: Richard
> Fix For: 1.99.5
>
> Attachments: catalina-cleaned.out, diff.patch, diff_v2.patch,
> sqoop-cleaned.log
>
>
> {noformat}
> sqoop:000> show version --all
> client version:
> Sqoop 2.0.0-SNAPSHOT source revision
> 423de5d515545df2ca535d5ac5e84a4e9db30ba0
> Compiled by abe on Mon Nov 17 12:49:17 PST 2014
> Exception has occurred during processing command
> Exception: java.lang.NullPointerException Message: null
> Stack trace:
> at org.apache.sqoop.json.VersionBean (VersionBean.java:74)
> at org.apache.sqoop.client.request.VersionResourceRequest
> (VersionResourceRequest.java:31)
> at org.apache.sqoop.shell.ShowVersionFunction
> (ShowVersionFunction.java:112)
> at org.apache.sqoop.shell.ShowVersionFunction
> (ShowVersionFunction.java:65)
> at org.apache.sqoop.shell.SqoopFunction (SqoopFunction.java:51)
> at org.apache.sqoop.shell.SqoopCommand (SqoopCommand.java:127)
> at org.apache.sqoop.shell.SqoopCommand (SqoopCommand.java:103)
> at org.codehaus.groovy.tools.shell.Command$execute (null:-1)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray
> (CallSiteArray.java:42)
> at org.codehaus.groovy.tools.shell.Command$execute (null:-1)
> at org.codehaus.groovy.tools.shell.Shell (Shell.groovy:101)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod
> (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:233)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:128)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:173)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
> (PogoMetaMethodSite.java:267)
> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
> (PogoMetaMethodSite.java:52)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:141)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:121)
> at org.codehaus.groovy.tools.shell.Shell (Shell.groovy:114)
> at org.codehaus.groovy.tools.shell.Shell$leftShift$0 (null:-1)
> at org.codehaus.groovy.tools.shell.ShellRunner
> (ShellRunner.groovy:88)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod
> (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:233)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:128)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:148)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:100)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
> (PogoMetaMethodSite.java:267)
> at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
> (PogoMetaMethodSite.java:52)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:137)
> at org.codehaus.groovy.tools.shell.ShellRunner
> (ShellRunner.groovy:57)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:-1)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:-2)
> at sun.reflect.NativeMethodAccessorImpl
> (NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method (Method.java:606)
> at org.codehaus.groovy.reflection.CachedMethod
> (CachedMethod.java:90)
> at groovy.lang.MetaMethod (MetaMethod.java:233)
> at groovy.lang.MetaClassImpl (MetaClassImpl.java:1054)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:128)
> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter
> (ScriptBytecodeAdapter.java:148)
> at org.codehaus.groovy.tools.shell.InteractiveShellRunner
> (InteractiveShellRunner.groovy:66)
> at java_lang_Runnable$run (null:-1)
> at org.codehaus.groovy.runtime.callsite.CallSiteArray
> (CallSiteArray.java:42)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:108)
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite
> (AbstractCallSite.java:112)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:463)
> at org.codehaus.groovy.tools.shell.Groovysh (Groovysh.groovy:402)
> at org.apache.sqoop.shell.SqoopShell (SqoopShell.java:128)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)