Ilya Kasnacheev created IGNITE-12425:
----------------------------------------

             Summary: Deadlock on CacheStore.loadAll
                 Key: IGNITE-12425
                 URL: https://issues.apache.org/jira/browse/IGNITE-12425
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: 2.7.6
            Reporter: Ilya Kasnacheev
         Attachments: ignite-dataload-deadlock.zip

Yes, we do have a deadlock in CacheStore.loadAll, as demonstrated by this 
reproducer.

The obvious embarassing fix is to replace HashMap with TreeMap, which will of 
course not work if keys are not compabable

{code}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 3156d6d662d..3947800a908 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
+import java.util.TreeMap;
 import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
@@ -2054,7 +2055,7 @@ public abstract class GridCacheAdapter<K, V> implements 
IgniteInternalCache<K, V
 
                                     if (res.value() == null) {
                                         if (misses == null)
-                                            misses = new HashMap<>();
+                                            misses = new TreeMap<>();
 
                                         misses.put(key, res);
 
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to