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

CQLSH gets SSL exception following a COPY FROM

    XMLWordPrintableJSON

Details

    • 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. stdout.txt.zip
          522 kB
          Stefania Alborghetti
        2. stdout_single_process.txt.zip
          54 kB
          Stefania Alborghetti
        3. driver_debug.txt
          14 kB
          Stefania Alborghetti

        Issue Links

          Activity

            People

              stefania Stefania Alborghetti
              stefania Stefania Alborghetti
              Stefania Alborghetti
              Tom Hobbs
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: