[
https://issues.apache.org/jira/browse/IGNITE-7088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16277022#comment-16277022
]
ASF GitHub Bot commented on IGNITE-7088:
----------------------------------------
GitHub user ezhuravl opened a pull request:
https://github.com/apache/ignite/pull/3136
IGNITE-7088 Fix implementation of DIRECT comparator for ordering caches
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gridgain/apache-ignite ignite-7088
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/3136.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3136
----
commit bf7f857d15e17ab27ffcc2b5448160a72d481045
Author: ezhuravl <[email protected]>
Date: 2017-12-04T16:09:36Z
IGNITE-7088 Fix implementation of DIRECT comparator for ordering cache
start operations
----
> 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)