[
https://issues.apache.org/jira/browse/IGNITE-7088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16280474#comment-16280474
]
Evgenii Zhuravlev commented on IGNITE-7088:
-------------------------------------------
Folks, please review my fix. TC looks good:
https://ci.ignite.apache.org/project.html?projectId=Ignite20Tests&branch_Ignite20Tests=pull%2F3136%2Fhead
> Wrong implementation of DIRECT comparator for ordering cache start operations
> -----------------------------------------------------------------------------
>
> Key: IGNITE-7088
> URL: https://issues.apache.org/jira/browse/IGNITE-7088
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.3
> Reporter: Evgenii Zhuravlev
> Assignee: Evgenii Zhuravlev
> Priority: Critical
> Fix For: 2.4
>
>
> {code:java}
> java.lang.IllegalArgumentException: Comparison method violates its general
> contract!
> at java.util.TimSort.mergeHi(TimSort.java:899) ~[?:1.8.0_102]
> at java.util.TimSort.mergeAt(TimSort.java:516) ~[?:1.8.0_102]
> at java.util.TimSort.mergeForceCollapse(TimSort.java:457) ~[?:1.8.0_102]
> at java.util.TimSort.sort(TimSort.java:254) ~[?:1.8.0_102]
> at java.util.Arrays.sort(Arrays.java:1512) ~[?:1.8.0_102]
> at java.util.ArrayList.sort(ArrayList.java:1454) ~[?:1.8.0_102]
> at java.util.Collections.sort(Collections.java:175) ~[?:1.8.0_102]
> at
> org.apache.ignite.internal.processors.cache.ClusterCachesInfo.orderedCaches(ClusterCachesInfo.java:1616)
> ~[ignite-core-2.1.7.jar:2.1.7]
> at
> org.apache.ignite.internal.processors.cache.ClusterCachesInfo.cachesReceivedFromJoin(ClusterCachesInfo.java:839)
> ~[ignite-core-2.1.7.jar:2.1.7]
> at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.startReceivedCaches(GridCacheProcessor.java:1709)
> ~[ignite-core-2.1.7.jar:2.1.7]
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:606)
> [ignite-core-2.1.7.jar:2.1.7]
> at
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2278)
> [ignite-core-2.1.7.jar:2.1.7]
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> [ignite-core-2.1.7.jar:2.1.7]
> at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102]
> {code}
> When 2 not user caches will be compared using this comparator, this above
> exception will be thrown.
> As a workaround can be used system variable
> -Djava.util.Arrays.useLegacyMergeSort=true
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)