Semen Boikov created IGNITE-3299:
------------------------------------

             Summary: Cache remove can be lost in ATOMIC cache with 
OFFHEAP_TIERED memory mode
                 Key: IGNITE-3299
                 URL: https://issues.apache.org/jira/browse/IGNITE-3299
             Project: Ignite
          Issue Type: Bug
          Components: cache
            Reporter: Semen Boikov
            Assignee: Semen Boikov
            Priority: Critical
             Fix For: 1.7


Added test reproducing issue (IgniteCacheConcurrentPutGetRemove).

1. There is an issue with 'deferredDelete' implementation - entry marked as 
'deleted' can be evicted from cache, after this information about remove is 
lost (note: this can be reproduced not only in OFFHEAP_TIERED, but also in 
ONHEAP_TIERED mode with eviction policy, also this can also cause lost update 
in transactional cache on changing topology).

2. Looks like condition for removing from offheap in 
GridCacheMapEntry.innerUpdate is not correct:
{noformat}
            if (op != GridCacheOperation.UPDATE && cctx.offheapTiered() && 
hasValPtr) {
                boolean rmv = cctx.swap().removeOffheap(key);
{noformat}

It is possible that value was put in offheap, but 'hasValPtr' is false.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to