Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-1947

Old Java client throws strange exception when talking to a Kerberized cluster

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • 1.3.0
    • 1.4.0
    • java
    • None

    Description

      I have a cluster whose authn-related non-default flags look like this:

      --rpc_authentication=required
      --rpc_encryption=required
      --keytab_file=/run/cloudera-scm-agent/process/2-kudu-KUDU_MASTER/kudu.keytab
      

      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.

      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)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            adar Adar Dembo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: