[
https://issues.apache.org/jira/browse/CASSANDRA-7593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14080817#comment-14080817
]
Marcus Eriksson commented on CASSANDRA-7593:
--------------------------------------------
Still not working, we get clusteringSize() = 1 for rt.max and clusteringSize()
= 0 for min
when deserializing the RT we get to CSCNT.WithCollection.makeWith():
{code}
protected Composite makeWith(ByteBuffer[] components, int size,
Composite.EOC eoc, boolean isStatic)
{
if (size < clusteringSize + 1 || eoc != Composite.EOC.NONE)
return new CompoundComposite(components, size,
isStatic).withEOC(eoc);
return new CompoundSparseCellName(components, clusteringSize,
idFor(components[clusteringSize]), isStatic);
}
{code}
so, if we have an EOC we wrap a CompoundComposite with size (which is 1 in this
case), and if we don't, we create a CSCN with clusteringSize (which is 0)
Attaching a patch that keeps clusteringSize in the compound composite, but have
to say that I don't know enough about this to say if it breaks everything else.
a way to repro:
# start cassandra2.0
# CREATE TABLE t (k int PRIMARY KEY,something text, a set<varchar>, b
set<varchar>);
# update t set b = null where k = 1;
# flush
# upgrade to 2.1
# upgradesstables
# check min&max column names (i hacked SSTableMetadataViewer to dump the
contents)
> Errors when upgrading through several versions to 2.1
> -----------------------------------------------------
>
> Key: CASSANDRA-7593
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7593
> Project: Cassandra
> Issue Type: Bug
> Environment: java 1.7
> Reporter: Russ Hatch
> Assignee: Tyler Hobbs
> Priority: Critical
> Fix For: 2.1.0
>
> Attachments: 0001-keep-clusteringSize-in-CompoundComposite.patch,
> 7593.txt
>
>
> I'm seeing two different errors cropping up in the dtest which upgrades a
> cluster through several versions.
> This is the more common error:
> {noformat}
> ERROR [GossipStage:10] 2014-07-22 13:14:30,028 CassandraDaemon.java:168 -
> Exception in thread Thread[GossipStage:10,5,main]
> java.lang.AssertionError: null
> at
> org.apache.cassandra.db.filter.SliceQueryFilter.shouldInclude(SliceQueryFilter.java:347)
> ~[main/:na]
> at
> org.apache.cassandra.db.filter.QueryFilter.shouldInclude(QueryFilter.java:249)
> ~[main/:na]
> at
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:249)
> ~[main/:na]
> at
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:60)
> ~[main/:na]
> at
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1873)
> ~[main/:na]
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1681)
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:345)
> ~[main/:na]
> at
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:59)
> ~[main/:na]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.readLocally(SelectStatement.java:293)
> ~[main/:na]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:302)
> ~[main/:na]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:60)
> ~[main/:na]
> at
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:263)
> ~[main/:na]
> at
> org.apache.cassandra.db.SystemKeyspace.getPreferredIP(SystemKeyspace.java:514)
> ~[main/:na]
> at
> org.apache.cassandra.net.OutboundTcpConnectionPool.<init>(OutboundTcpConnectionPool.java:51)
> ~[main/:na]
> at
> org.apache.cassandra.net.MessagingService.getConnectionPool(MessagingService.java:522)
> ~[main/:na]
> at
> org.apache.cassandra.net.MessagingService.getConnection(MessagingService.java:536)
> ~[main/:na]
> at
> org.apache.cassandra.net.MessagingService.sendOneWay(MessagingService.java:689)
> ~[main/:na]
> at
> org.apache.cassandra.net.MessagingService.sendReply(MessagingService.java:663)
> ~[main/:na]
> at
> org.apache.cassandra.service.EchoVerbHandler.doVerb(EchoVerbHandler.java:40)
> ~[main/:na]
> at
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62)
> ~[main/:na]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> ~[na:1.7.0_60]
> at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_60]
> {noformat}
> The same test sometimes fails with this exception instead:
> {noformat}
> ERROR [CompactionExecutor:4] 2014-07-22 16:18:21,008 CassandraDaemon.java:168
> - Exception in thread Thread[CompactionExecutor:4,1,RMI Runtime]
> java.util.concurrent.RejectedExecutionException: Task
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@7059d3e9
> rejected from
> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor@108f1504[Terminated,
> pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 95]
> at
> java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:325)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:530)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:619)
> ~[na:1.7.0_60]
> at
> org.apache.cassandra.io.sstable.SSTableReader.scheduleTidy(SSTableReader.java:628)
> ~[main/:na]
> at
> org.apache.cassandra.io.sstable.SSTableReader.tidy(SSTableReader.java:609)
> ~[main/:na]
> at
> org.apache.cassandra.io.sstable.SSTableReader.releaseReference(SSTableReader.java:1596)
> ~[main/:na]
> at
> org.apache.cassandra.db.DataTracker.replaceReaders(DataTracker.java:354)
> ~[main/:na]
> at
> org.apache.cassandra.io.sstable.SSTableRewriter.abort(SSTableRewriter.java:200)
> ~[main/:na]
> at
> org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:192)
> ~[main/:na]
> at
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
> ~[main/:na]
> at
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> ~[main/:na]
> at
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:74)
> ~[main/:na]
> at
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
> ~[main/:na]
> at
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:236)
> ~[main/:na]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> ~[na:1.7.0_60]
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> ~[na:1.7.0_60]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_60]
> at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)