[
https://issues.apache.org/jira/browse/CASSANDRA-3306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13486727#comment-13486727
]
Sylvain Lebresne commented on CASSANDRA-3306:
---------------------------------------------
For patch 0002, we shouldn't check the FailureDetector otherwise we don't
really fix the issue. The only way we know this bug can happen is wher the
FailureDetector *had* marked a node down while it shouldn't have (besides, we
just got something from a node so it's fair to assume it is alive).
bq. and I think the test and CollationController#collectAllData expect sstables
to be ordered by timestamp
It doesn't seem to me that collectAllData needs sstable ordered. In fact, I
think that it does a second pass over the sstables iterators just because it
doesn't assume sstables are ordered by max timestamp. Moreover, I'm pretty sure
it would be a bug to assume that. If you look at DataTracker.View.newSSTables,
it ends by {{Iterables.addAll(newSSTables, replacements)}} which clearly won't
maintain any specific ordering of sstables.
bq. I'm not sure if the test is obsolete.
I don't think the test is obsolete but I think we have a minor bug in
CollationController. The test want to test that we correctly exclude sstable
whose maxTimestamp is less than the most recent row tombstone we have. But that
test checks controller.getSstablesIterated(), and for collectAllData, it will
count every sstable it include in the first iteration of collectAllData but
don't remove those that are remove by the second pass. In other words, I think
the correct fix is to decrement stablesIterated in CollationController when in
the second pass we remove a sstable (or more simply to set it to
iterators.size() just before we collate everything).
> Error in LeveledCompactionStrategy
> ----------------------------------
>
> Key: CASSANDRA-3306
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3306
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.0.0
> Reporter: Radim Kolar
> Assignee: Yuki Morishita
> Fix For: 1.1.7
>
> Attachments: 0001-CASSANDRA-3306-test.patch,
> 0001-change-DataTracker.View-s-sstables-from-List-to-Set.patch,
> 0002-fail-stream-session-for-invalid-request.patch
>
>
> during stress testing, i always get this error making leveledcompaction
> strategy unusable. Should be easy to reproduce - just write fast.
> ERROR [CompactionExecutor:6] 2011-10-04 15:48:52,179
> AbstractCassandraDaemon.java (line 133) Fatal exception in thread
> Thread[CompactionExecutor:6,5,main]
> java.lang.AssertionError
> at
> org.apache.cassandra.db.DataTracker$View.newSSTables(DataTracker.java:580)
> at
> org.apache.cassandra.db.DataTracker$View.replace(DataTracker.java:546)
> at org.apache.cassandra.db.DataTracker.replace(DataTracker.java:268)
> at
> org.apache.cassandra.db.DataTracker.replaceCompactedSSTables(DataTracker.java:232)
> at
> org.apache.cassandra.db.ColumnFamilyStore.replaceCompactedSSTables(ColumnFamilyStore.java:960)
> at
> org.apache.cassandra.db.compaction.CompactionTask.execute(CompactionTask.java:199)
> at
> org.apache.cassandra.db.compaction.LeveledCompactionTask.execute(LeveledCompactionTask.java:47)
> at
> org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:131)
> at
> org.apache.cassandra.db.compaction.CompactionManager$1.call(CompactionManager.java:114)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> and this is in json data for table:
> {
> "generations" : [ {
> "generation" : 0,
> "members" : [ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
> 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484 ]
> }, {
> "generation" : 1,
> "members" : [ ]
> }, {
> "generation" : 2,
> "members" : [ ]
> }, {
> "generation" : 3,
> "members" : [ ]
> }, {
> "generation" : 4,
> "members" : [ ]
> }, {
> "generation" : 5,
> "members" : [ ]
> }, {
> "generation" : 6,
> "members" : [ ]
> }, {
> "generation" : 7,
> "members" : [ ]
> } ]
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira