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)

Reply via email to