[ 
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)

Reply via email to