ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeyhun Karimov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-2231) 'Put' cache event treats entry created at lock acquisition time as old value
Date Thu, 23 Mar 2017 23:07:41 GMT

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

Jeyhun Karimov commented on IGNITE-2231:
----------------------------------------

[~dmagda], I want to give a try, if it is still available. 

> 'Put' cache event treats entry created at lock acquisition time as old value
> ----------------------------------------------------------------------------
>
>                 Key: IGNITE-2231
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2231
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Denis Magda
>             Fix For: 2.0
>
>         Attachments: EventsProcessingTest.java
>
>
> Subscribe for EVT_CACHE_OBJECT_PUT event on one node and perform 'put' operations from
the other to an empty transnational cache.
> The subscriber will receive a notification saying that there was an old value for a key
at the time the new was being inserted. In fact the was no an old value, the entry with a
{{null}} as a value was generated as a part of implicit lock acquisition.
> This snippet of the code in {{GridCacheMapEntry}} generates a wrong event (innerSet function)
> {noformat}
>             if (evt && newVer != null && cctx.events().isRecordable(EVT_CACHE_OBJECT_PUT))
{
>                 CacheObject evtOld = cctx.unwrapTemporary(old);
>                 cctx.events().addEvent(partition(),
>                     key,
>                     evtNodeId,
>                     tx == null ? null : tx.xid(),
>                     newVer,
>                     EVT_CACHE_OBJECT_PUT,
>                     val,
>                     val != null,
>                     evtOld,
>                     evtOld != null || hasValueUnlocked(),
>                     subjId, null, taskName,
>                     keepBinary);
>             }
> {noformat}
> Attached the test that lets reproduce the issue.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message