[
https://issues.apache.org/jira/browse/CASSANDRA-8013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14155645#comment-14155645
]
Philo Yang edited comment on CASSANDRA-8013 at 10/1/14 10:27 PM:
-----------------------------------------------------------------
Got it. I think the RTL.diff do these things:
1, assume "superset" covers all the RLs in this RTL, if not so, there is a bug
in superset building code.
2, find all RTs that does not appear in this RTL(appear means start, end, and
markedAts are all equal), add them all into the diff result list.
If my understanding is correct, I find there is a bug in diff even when the
superset does not have a smaller size when there are more than one RLs in the
subset that are covered by one RL in the superset, the comparison will be
mismatched and the result will be wrong.
was (Author: yangzhe1991):
Got it. I think the RTL.diff do these things:
1, assume "superset" covers all the RLs in this RTL, if not so, there is a bug
in superset building code.
2, find all RTs that does not appear in this RTL(appear means start, end, and
markedAts are all equal), add them all into the diff result list.
If my understanding is correct, I find there is a bug in diff even when the
superset not having a smaller size when there are RLs in the end of superset
and it doesn't appear in subset RTL.
> AssertionError on RangeTombstoneList.diff
> -----------------------------------------
>
> Key: CASSANDRA-8013
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8013
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Philo Yang
> Fix For: 2.1.1
>
> Attachments: 8013-v2.patch, 8013.patch
>
>
> after upgrading to 2.1.0, I found there are many exceptions in system.log. It
> appears in nodes upgraded from 2.0 as well as in nodes newly add at 2.1.0
>
> {noformat}
> ERROR [SharedPool-Worker-8] 2014-09-27 16:44:50,188 ErrorMessage.java:218 -
> Unexpected exception during request
> java.lang.AssertionError: null
> at
> org.apache.cassandra.db.RangeTombstoneList.diff(RangeTombstoneList.java:424)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at org.apache.cassandra.db.DeletionInfo.diff(DeletionInfo.java:189)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at org.apache.cassandra.db.ColumnFamily.diff(ColumnFamily.java:311)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at org.apache.cassandra.db.ColumnFamily.diff(ColumnFamily.java:394)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.RowDataResolver.scheduleRepairs(RowDataResolver.java:114)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.RowDataResolver.resolve(RowDataResolver.java:91)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.RowDataResolver.resolve(RowDataResolver.java:37)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at org.apache.cassandra.service.ReadCallback.get(ReadCallback.java:110)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:1300)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:1153)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.pager.SliceQueryPager.queryNextPage(SliceQueryPager.java:83)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.pager.AbstractQueryPager.fetchPage(AbstractQueryPager.java:88)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.service.pager.SliceQueryPager.fetchPage(SliceQueryPager.java:36)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:224)
> ~[apache-cassandra-2.1.0.jar:2.1.0]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60)
> ~[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_51]
> 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:744) [na:1.7.0_51]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)