[ 
https://issues.apache.org/jira/browse/CASSANDRA-7990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tyler Hobbs updated CASSANDRA-7990:
-----------------------------------
    Attachment: 7990-partial-fix.txt

I was able to figure out the second stack trace, and the attached patch 
7990-partial-fix.txt (and 
[branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-7990]) fixes that.  
There's a dtest branch to reproduce that issue here: 
https://github.com/thobbs/cassandra-dtest/tree/CASSANDRA-7990.  The bug should 
only affect slice deletions from Thrift that set a non-0x00 EOC on the slice 
bounds. Feel free to test this patch out and see if it resolves the second 
stack trace.

However, I'm not sure about the first stack trace.  It's coming from the native 
protocol, and it's a batch statement that contains an insert or update 
statement.  It's updating a compact storage table with at least two clustering 
keys (e.g. {{PRIMARY KEY (a, b, c)}}.  Do you think you can narrow that down at 
all, [~christianmovi]?

> CompoundDenseCellNameType AssertionError and BoundedComposite to CellName 
> ClasCastException
> -------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7990
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7990
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Ubuntu, Java 1.7.0_67, Cassandra 2.1.0,  
> cassandra-driver-core:jar:2.0.6
>            Reporter: Christian Spriegel
>            Assignee: Tyler Hobbs
>            Priority: Minor
>         Attachments: 7990-partial-fix.txt
>
>
> I just updated my laptop to Cassandra 2.1 and created a fresh data folder.
> When trying to run my automated tests i get a lot these exceptions in the 
> Cassandra log:
> {code}
> ERROR [SharedPool-Worker-1] 2014-09-23 12:59:17,812 ErrorMessage.java:218 - 
> Unexpected exception during request
> java.lang.AssertionError: null
>       at 
> org.apache.cassandra.db.composites.CompoundDenseCellNameType.create(CompoundDenseCellNameType.java:57)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.Constants$Setter.execute(Constants.java:313) 
> ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.UpdateStatement.addUpdateForKey(UpdateStatement.java:91)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.BatchStatement.addStatementMutations(BatchStatement.java:235)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.BatchStatement.getMutations(BatchStatement.java:181)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:283)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:269)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:264)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:187)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:206) 
> ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:118)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:422)
>  [apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:318)
>  [apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)
>  [netty-all-4.0.20.Final.jar:4.0.20.Final]
>       at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332)
>  [netty-all-4.0.20.Final.jar:4.0.20.Final]
>       at 
> io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31)
>  [netty-all-4.0.20.Final.jar:4.0.20.Final]
>       at 
> io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323)
>  [netty-all-4.0.20.Final.jar:4.0.20.Final]
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
> [na:1.7.0_67]
>       at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163)
>  [apache-cassandra-2.1.0.jar:2.1.0]
>       at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) 
> [apache-cassandra-2.1.0.jar:2.1.0]
>       at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> ERROR [Thrift:9] 2014-09-23 12:59:17,823 CustomTThreadPoolServer.java:219 - 
> Error occurred during processing of message.
> java.lang.ClassCastException: 
> org.apache.cassandra.db.composites.BoundedComposite cannot be cast to 
> org.apache.cassandra.db.composites.CellName
>       at 
> org.apache.cassandra.db.composites.AbstractCellNameType.cellFromByteBuffer(AbstractCellNameType.java:170)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.thrift.CassandraServer.deleteColumnOrSuperColumn(CassandraServer.java:936)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.thrift.CassandraServer.createMutationList(CassandraServer.java:860)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.thrift.CassandraServer.batch_mutate(CassandraServer.java:971)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$batch_mutate.getResult(Cassandra.java:3996)
>  ~[apache-cassandra-thrift-2.1.0.jar:2.1.0]
>       at 
> org.apache.cassandra.thrift.Cassandra$Processor$batch_mutate.getResult(Cassandra.java:3980)
>  ~[apache-cassandra-thrift-2.1.0.jar:2.1.0]
>       at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
> ~[libthrift-0.9.1.jar:0.9.1]
>       at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
> ~[libthrift-0.9.1.jar:0.9.1]
>       at 
> org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:201)
>  ~[apache-cassandra-2.1.0.jar:2.1.0]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_67]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_67]
>       at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]
> {code}
> I cannot say what is causing these. So I am posting this as it is for now, 
> hoping somebody already knows what the issue is.
> - Currently CQL and thrift is running side by side.
> - Many of the CQL tables use compact storage.
> I could dig deeper and try to isolate the cause if necessary.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to