[ 
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)

Reply via email to