Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-11749

CQLSH gets SSL exception following a COPY FROM

    Details

    • Severity:
      Normal

      Description

      When running Cassandra and cqlsh with SSL, the following command occasionally results in the exception below:

      cqlsh --ssl -f kv.cql
      
      ERROR [SharedPool-Worker-2] 2016-05-11 12:41:03,583 Message.java:538 - Unexpected exception during request; channel = [id: 0xeb75e05d, /127.0.0.1:51083 => /127.0.0.1:9042]
      io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: bad record MAC
              at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:280) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:149) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:722) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
      Caused by: javax.net.ssl.SSLException: bad record MAC
              at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) ~[na:1.8.0_91]
              at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728) ~[na:1.8.0_91]
              at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:981) ~[na:1.8.0_91]
              at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907) ~[na:1.8.0_91]
              at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781) ~[na:1.8.0_91]
              at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) ~[na:1.8.0_91]
              at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:982) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:908) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:854) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:249) ~[netty-all-4.0.23.Final.jar:4.0.23.Final]
              ... 10 common frames omitted
      Caused by: javax.crypto.BadPaddingException: bad record MAC
              at sun.security.ssl.InputRecord.decrypt(InputRecord.java:219) ~[na:1.8.0_91]
              at sun.security.ssl.EngineInputRecord.decrypt(EngineInputRecord.java:177) ~[na:1.8.0_91]
              at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:974) ~[na:1.8.0_91]
              ... 17 common frames omitted
      

      where

      cat kv.cql 
      create keyspace if not exists cvs_copy_ks with replication = {'class': 'SimpleStrategy', 'replication_factor':1};
      create table if not exists cvs_copy_ks.kv (key int primary key, value text);
      truncate cvs_copy_ks.kv;
      copy cvs_copy_ks.kv (key, value) from 'kv.csv' with header='true';
      select * from cvs_copy_ks.kv;
      drop keyspace cvs_copy_ks;
      stefi@cuoricina:~/git/cstar/cassandra$ cat kv.c
      kv.cql  kv.csv  
      
      cat kv.csv 
      key,value
      1,'a'
      2,'b'
      3,'c'
      

      The COPY FROM succeeds, however the following select does not.

      The easiest way to reproduce this is to restart the Cassandra process, it seems to happen in preference after a restart.

        Attachments

        1. driver_debug.txt
          14 kB
          Stefania
        2. stdout_single_process.txt.zip
          54 kB
          Stefania
        3. stdout.txt.zip
          522 kB
          Stefania

          Activity

            People

            • Assignee:
              Stefania Stefania
              Reporter:
              Stefania Stefania
              Authors:
              Stefania
              Reviewers:
              Tyler Hobbs
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: