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

Todd Lipcon commented on KUDU-1947:
-----------------------------------

This is a known issue -- the Java client in previous versions didn't handle 
non-success responses during negotiation. If we find this to be troublesome 
enough we could go back and try to fix this in past branches, but I'm hoping 
that the scenario is rare enough that if someone hits it, they'll google the 
error and find this explanation.

> Old Java client throws strange exception when talking to a Kerberized cluster
> -----------------------------------------------------------------------------
>
>                 Key: KUDU-1947
>                 URL: https://issues.apache.org/jira/browse/KUDU-1947
>             Project: Kudu
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.3.0
>            Reporter: Adar Dembo
>
> I have a cluster whose authn-related non-default flags look like this:
> {noformat}
> --rpc_authentication=required
> --rpc_encryption=required
> --keytab_file=/run/cloudera-scm-agent/process/2-kudu-KUDU_MASTER/kudu.keytab
> {noformat}
> Against this, I'm trying to run some pretty old Kudu test code that uses the 
> Java client, and I'm seeing an unexpected exception while creating a 
> KuduClient. I don't expect this to work (since pre-1.3.0 clients can't 
> interact with clusters that require authn), but the error message is 
> inscrutable. I've reproduced this using a Java client from 0.10.0 as well as 
> from 1.2.0.
> {noformat}
> 2017-03-17 19:56:43,535 (New I/O worker #8) [ERROR - 
> org.apache.kudu.client.TabletClient.exceptionCaught(TabletClient.java:793)] 
> [Peer Kudu Master - adar-1.gce.cloudera.com:7051] Unexpected exception from 
> downstream on [id: 0xfbb0485a, /172.31.112.89:54724 => /172.31.112.89:7051]
> java.lang.RuntimeException: Could not deserialize the response, incompatible 
> RPC? Error is: state
>       at org.apache.kudu.client.KuduRpc.readProtobuf(KuduRpc.java:364)
>       at 
> org.apache.kudu.client.SecureRpcHelper.parseSaslMsgResponse(SecureRpcHelper.java:204)
>       at 
> org.apache.kudu.client.SecureRpcHelper.handleResponse(SecureRpcHelper.java:131)
>       at org.apache.kudu.client.TabletClient.decode(TabletClient.java:386)
>       at org.apache.kudu.client.TabletClient.decode(TabletClient.java:82)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
>       at 
> org.apache.kudu.client.TabletClient.handleUpstream(TabletClient.java:677)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
>       at 
> org.apache.kudu.client.shaded.org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
>       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)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to