cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Tunnicliffe (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-13236) corrupt flag error after upgrade from 2.2 to 3.0.10
Date Fri, 05 May 2017 18:02:04 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-13236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15997710#comment-15997710
] 

Sam Tunnicliffe edited comment on CASSANDRA-13236 at 5/5/17 6:01 PM:
---------------------------------------------------------------------

The error is being thrown when the coordinator deserialises the response from a replica (which
may actually be itself) that is reading an old format sstable. The bug is in the serialisation
of the replica response which does a double read of the static row, first as the static row,
then incorrectly as the partition's regular row. This only affects tables with column indexes,
so doesn't repro with narrow partitions. With support for pre-3.0 sstables going away in 4.0,
the problem only affects 3.0 & 3.x.
 
I've pushed 3.0 & 3.11 branches and added a dtest to catch this scenario [here|https://github.com/riptano/cassandra-dtest/pull/1469],
but I need to get up to speed on the new CI workflows, especially running dtests with custom
a repo/branch
||branch||
|[13236-3.0|https://github.com/beobal/cassandra/tree/13236-3.0]|
|[13236-3.11|https://github.com/beobal/cassandra/tree/13236-3.11]|


was (Author: beobal):
The error is being thrown when the coordinator deserialises the response from a replica (which
may actually be itself) that is reading an upgraded sstable. The bug is in the serialisation
of the replica response which does a double read of the static row, first as the static row,
then incorrectly as the partition's regular row. This only affects tables with column indexes,
so doesn't repro with narrow partitions. With support for pre-3.0 sstables going away in 4.0,
the problem only affects 3.0 & 3.x.
 
I've pushed 3.0 & 3.11 branches and added a dtest to catch this scenario [here|https://github.com/riptano/cassandra-dtest/pull/1469],
but I need to get up to speed on the new CI workflows, especially running dtests with custom
a repo/branch
||branch||
|[13236-3.0|https://github.com/beobal/cassandra/tree/13236-3.0]|
|[13236-3.11|https://github.com/beobal/cassandra/tree/13236-3.11]|

> corrupt flag error after upgrade from 2.2 to 3.0.10
> ---------------------------------------------------
>
>                 Key: CASSANDRA-13236
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13236
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: cassandra 3.0.10
>            Reporter: ingard mev├ąg
>            Assignee: Sam Tunnicliffe
>            Priority: Critical
>             Fix For: 3.0.x, 3.11.x
>
>
> After upgrade from 2.2.5 to 3.0.9/10 we're getting a bunch of errors like this:
> {code}
> ERROR [SharedPool-Worker-1] 2017-02-17 12:58:43,859 Message.java:617 - Unexpected exception
during request; channel = [id: 0xa8b98684, /10.0.70.104:56814 => /10.0.80.24:9042]
> java.io.IOError: java.io.IOException: Corrupt flags value for unfiltered partition (isStatic
flag set): 160
>         at org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer$1.computeNext(UnfilteredRowIteratorSerializer.java:222)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer$1.computeNext(UnfilteredRowIteratorSerializer.java:210)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129) ~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.processPartition(SelectStatement.java:749)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:711)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:400)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:265)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:224)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:76)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:487)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:464)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:130)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513)
[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407)
[apache-cassandra-3.0.10.jar:3.0.10]
>         at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
[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.access$700(AbstractChannelHandlerContext.java:32)
[netty-all-4.0.23.Final.jar:4.0.23.Final]
>         at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
[netty-all-4.0.23.Final.jar:4.0.23.Final]
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_72]
>         at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-3.0.10.jar:3.0.10]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_72]
> Caused by: java.io.IOException: Corrupt flags value for unfiltered partition (isStatic
flag set): 160
>         at org.apache.cassandra.db.rows.UnfilteredSerializer.deserialize(UnfilteredSerializer.java:374)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         at org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer$1.computeNext(UnfilteredRowIteratorSerializer.java:217)
~[apache-cassandra-3.0.10.jar:3.0.10]
>         ... 23 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message