[jira] [Created] (IGNITE-3299) Cache remove can be lost in ATOMIC cache with OFFHEAP_TIERED memory mode

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-3299) Cache remove can be lost in ATOMIC cache with OFFHEAP_TIERED memory mode

Anton Vinogradov (Jira)
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)