[
https://issues.apache.org/jira/browse/CASSANDRA-9519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14620655#comment-14620655
]
Brandon Williams commented on CASSANDRA-9519:
---------------------------------------------
bq. If it is, I don't understand why, so you might want to elaborate what the
problem is and why that fixes it.
My take from the stacktrace was that DES.sortByProximityWithScore was calling
super to AES.sortByProximity which then had a problem with the array changing
while being sorted. AES.getSortedListByProximity doesn't have this problem
because it copies the array before calling AES.sortByProximity, so it seemed
like a simple solution to just make sortByProximity do this itself. That said,
your theory seems plausible as well. It would be nice if we had a test that
could reproduce this so we don't have to play guessing games, but I'm not sure
how feasible that is.
> CASSANDRA-8448 Doesn't seem to be fixed
> ---------------------------------------
>
> Key: CASSANDRA-9519
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9519
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Jeremiah Jordan
> Fix For: 2.1.x, 2.2.x
>
> Attachments: 9519.txt
>
>
> Still seeing the "Comparison method violates its general contract!" in 2.1.5
> {code}
> java.lang.IllegalArgumentException: Comparison method violates its general
> contract!
> at java.util.TimSort.mergeHi(TimSort.java:895) ~[na:1.8.0_45]
> at java.util.TimSort.mergeAt(TimSort.java:512) ~[na:1.8.0_45]
> at java.util.TimSort.mergeCollapse(TimSort.java:437) ~[na:1.8.0_45]
> at java.util.TimSort.sort(TimSort.java:241) ~[na:1.8.0_45]
> at java.util.Arrays.sort(Arrays.java:1512) ~[na:1.8.0_45]
> at java.util.ArrayList.sort(ArrayList.java:1454) ~[na:1.8.0_45]
> at java.util.Collections.sort(Collections.java:175) ~[na:1.8.0_45]
> at
> org.apache.cassandra.locator.AbstractEndpointSnitch.sortByProximity(AbstractEndpointSnitch.java:49)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximityWithScore(DynamicEndpointSnitch.java:158)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximityWithBadness(DynamicEndpointSnitch.java:187)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.locator.DynamicEndpointSnitch.sortByProximity(DynamicEndpointSnitch.java:152)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.service.StorageProxy.getLiveSortedEndpoints(StorageProxy.java:1530)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.service.StorageProxy.getRangeSlice(StorageProxy.java:1688)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:256)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:209)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:63)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:238)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:260)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> at
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:272)
> ~[cassandra-all-2.1.5.469.jar:2.1.5.469]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)