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

LWT with SERIAL consistency gives misleading message on WriteTimeout

    XMLWordPrintableJSON

Details

    • Normal

    Description

      I have a user using LWT with SERIAL consistency. We see the following stack trace:

      ERROR [Native-Transport-Requests:61112] 2014-04-16 10:39:05,437 ErrorMessage.java (line 222) Unexpected exception during request
      java.lang.UnsupportedOperationException: Invalid consistency level: SERIAL
              at org.apache.cassandra.db.ConsistencyLevel.blockFor(ConsistencyLevel.java:137)
              at org.apache.cassandra.service.StorageProxy.beginAndRepairPaxos(StorageProxy.java:361)
              at org.apache.cassandra.service.StorageProxy.cas(StorageProxy.java:220)
              at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithCondition(ModificationStatement.java:452)
              at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:407)
              at org.apache.cassandra.cql3.QueryProcessor.executeWithHooks(QueryProcessor.java:201)
              at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:188)
              at org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:358)
              at org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:131)
              at org.apache.cassandra.transport.Message$Dispatcher.messageReceived(Message.java:304)
              at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
              at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
              at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
              at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
              at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
              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:744)
      

      It looks as though when the paxos round timesout we call blockFor() which currently doesn't support SERIAL.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ahattrell Adam Hattrell
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: