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

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

[~itsick] the workaround is to use 
[IgniteCache#clear(...)|https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteCache.html#clear-K-]
 method instead of remove. It removes the entry from cache only if no 
operations are performed concurrently.

Currently nobody seems to be working on the fix, so you can take it over. At 
this point it's unclear, if it's possible to guarantee consistency at all, when 
readThrough is enabled, but writeThrough is disabled. We need to research this 
point first.

> 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
>            Priority: Major
>         Attachments: IgniteInvalidationNullRunner.java
>
>
> 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