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

Sylvain Lebresne commented on CASSANDRA-7593:
---------------------------------------------

bq. we get a CompoundSparseCellName for RT.min and a BoundedComposite for 
RT.max and that breaks the collection of min/max column names

I see now, that's because ColumnNameHelper.minComponents special case CellNames 
to only use the clusteringSize but for BoundedComposite, which are not 
CellName, it will use the full size. 

bq.  in the grabbing of min/max column names, we only care about clustering 
columns, so with or without the extra EOC we should not be fetching the whole 
of this BoundedComposite into min/max - we should only be fetching up to the 
number of clustering columns

I agree. And a simple way to do this would be to promote the 
{{clusteringSize()}} method to the class Composite having it return the same 
than {{size()}} for non-cellname composites (but BoundedComposite would forward 
to it's "wrapped" composite properly). We'd then use that in 
ColumnNameHelper.\{min/max\}Components instead of the {{instanceof CellName}}.

> 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: Marcus Eriksson
>            Priority: Critical
>             Fix For: 2.1.0
>
>
> 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)

Reply via email to