ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Mekhanikov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-11371) Cache get operation with readThrough returns null if remove is performed concurrently
Date Tue, 19 Mar 2019 14:03:00 GMT

    [ 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:
public void testRemoveIsApplied() throws Exception {

    IgniteEx client = startGrid("client");

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

    String key = "key";


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



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


> 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
> Reproducer is attached.

This message was sent by Atlassian JIRA

View raw message