[ 
https://issues.apache.org/jira/browse/IGNITE-12425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Kasnacheev updated IGNITE-12425:
-------------------------------------
    Labels: stupid  (was: )

> 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
>            Priority: Critical
>              Labels: stupid
>         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