[
https://issues.apache.org/jira/browse/CASSANDRA-6483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846982#comment-13846982
]
graham sanderson commented on CASSANDRA-6483:
---------------------------------------------
Note the java option java.util.Arrays.useLegacyMergeSort could be used as a
workaround, but it is unclear to me if that would produce desirable results
> Possible Collections.sort assertion failure in STCS.filterColdSSTables
> ----------------------------------------------------------------------
>
> Key: CASSANDRA-6483
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6483
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: graham sanderson
>
> We have observed the following stack trace periodically:
> {code}
> java.lang.IllegalArgumentException: Comparison method violates its general
> contract!
> at java.util.TimSort.mergeLo(TimSort.java:747)
> at java.util.TimSort.mergeAt(TimSort.java:483)
> at java.util.TimSort.mergeCollapse(TimSort.java:410)
> at java.util.TimSort.sort(TimSort.java:214)
> at java.util.TimSort.sort(TimSort.java:173)
> at java.util.Arrays.sort(Arrays.java:659)
> at java.util.Collections.sort(Collections.java:217)
> at
> org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.filterColdSSTables(SizeTieredCompactionStrategy.java:94)
> at
> org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.getNextBackgroundSSTables(SizeTieredCompactionStrategy.java:59)
> at
> org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.getNextBackgroundTask(SizeTieredCompactionStrategy.java:229)
> at
> org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:191)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> {code}
> The comparator ant SizeTieredCompactionStrategy line 94 breaks the assertions
> in the new JDK7 default sort algorithm, because (I think just) the hotness
> value (based on meter) may be modified concurrently by another thread
> This bug appears to have been introduced in CASSANDRA-6109
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)