[jira] [Commented] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled
[ 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)
[jira] [Commented] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled
[ https://issues.apache.org/jira/browse/IGNITE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16034825#comment-16034825 ] Andrey Gura commented on IGNITE-5283: - Need to port to 2.0 > 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.3.15#6346)
[jira] [Commented] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled
[ https://issues.apache.org/jira/browse/IGNITE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16029532#comment-16029532 ] Andrey Gura commented on IGNITE-5283: - Tests are fixed. Please review. > 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.3.15#6346)
[jira] [Commented] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled
[ https://issues.apache.org/jira/browse/IGNITE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16025594#comment-16025594 ] Andrey Gura commented on IGNITE-5283: - There are failed tests. Investigation in progress. > 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.3.15#6346)
[jira] [Commented] (IGNITE-5283) Transaction recovery works incorrectly with cache store and writeThrough enabled
[ https://issues.apache.org/jira/browse/IGNITE-5283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16023268#comment-16023268 ] Andrey Gura commented on IGNITE-5283: - Fixed. See PR: https://github.com/apache/ignite/pull/2001 Now flags {{skipStore}} and {{storeUsed}} passed from primary node to backups and {{GridDhtTxRemote}} starts with proper {{storeUsed}} value. Waiting for TC. > 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.3.15#6346)