You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Evgenii Zhuravlev (JIRA)" <ji...@apache.org> on 2017/12/01 13:48:00 UTC

[jira] [Created] (IGNITE-7088) Wrong implementation of DIRECT comparator for ordering cache start operations

Evgenii Zhuravlev created IGNITE-7088:
-----------------------------------------

             Summary: 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
            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 cache will be compared using this comparator, this above exception will be thrown.

As a workaround can be used environment variable -Djava.util.Arrays.useLegacyMergeSort=true 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)