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)