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)