[
https://issues.apache.org/jira/browse/IGNITE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16050660#comment-16050660
]
Andrey Gura commented on IGNITE-5283:
-------------------------------------
Merged into master branch.
> Transaction recovery works incorrectly with cache store and writeThrough
> enabled
> --------------------------------------------------------------------------------
>
> Key: IGNITE-5283
> URL: https://issues.apache.org/jira/browse/IGNITE-5283
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Affects Versions: 1.7
> Reporter: Andrey Gura
> Assignee: Andrey Gura
> Fix For: 2.1
>
>
> Transaction (at least optimistic) recovery on backups works incorrectly when
> cache store and writeThrough enabled. Changes aren't propagated to DB (it's
> correct) but propagated to cache if primary node left topology.
> It happens because {{IgniteTxRemoteStateAdapter.storeUsed()}} method always
> returns {{false}}. As result incorrect code branch executes in
> {{NodeFailureTimeoutObject.onTimeout0()}} method ({{salvageTx()}} method
> should be invoked).
> *Steps to reproduce*:
> - Start two nodes A and B with cache. Cache store and writeThrough are anbled.
> - From node A start optimistic transaction which executes put/update
> operation for key. Node A should be primary for this key.
> - Kill node A when {{CacheStore.sessionEnd()}} method is invoked but changes
> are not propagated to underlying database (before commit on connection).
> - DB doesn't contain changes but node B contains it.
> *Expected behaviour:*
> All changes should be rolled back.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)