[ 
https://issues.apache.org/jira/browse/IGNITE-11371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16796122#comment-16796122
 ] 

Denis Mekhanikov commented on IGNITE-11371:
-------------------------------------------

[~agoncharuk] the changes look good to me. Consider adding tests for 
transactional caches and having at least one backup.

Also I think, it would be good to have a test like follows, just to fix the 
behaviour:
{code:java}
@Test
public void testRemoveIsApplied() throws Exception {
    startGrid(0);

    IgniteEx client = startGrid("client");

    IgniteCache<Object, Object> cache = client.cache(TEST_CACHE);

    String key = "key";

    assertNotNull(cache.get(key));

    IgniteFuture<Object> getFut = cache.getAsync(key);

    cache.remove(key);

    assertNotNull(getFut.get());

    assertNull(cache.localPeek(key)); // Check, that remove actually takes 
place.

    assertNotNull(cache.get(key));
}
{code}

> Cache get operation with readThrough returns null if remove is performed 
> concurrently
> -------------------------------------------------------------------------------------
>
>                 Key: IGNITE-11371
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11371
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 1.8, 2.5, 2.7
>            Reporter: Denis Mekhanikov
>            Assignee: Alexey Goncharuk
>            Priority: Major
>             Fix For: 2.8
>
>         Attachments: IgniteInvalidationNullRunner.java
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Consider a situation, when you have a cache with {{CacheStore}} and 
> {{readThrough}} configured.
> One may expect, that {{IgniteCache#get(...)}} operation will never return 
> {{null}} for keys, that are present in the underlying {{CacheStore}}. But 
> actually it's possible to get {{null}} in case if remove operation is called 
> on the same key while {{CacheStore#load}} is running.
> Reproducer is attached.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to