[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16781783#comment-16781783 ] Ivan Pavlukhin commented on IGNITE-9470: [~amashenkov], a particular test always goes in a following way: there are 2 explicit transactions modifying the same key, and one of them always fails with _write conflict_ (the test simulates it). As a result there is only one transaction inserting new version of a key and all checks from multiple threads seem useless. I believe that the test was written in order to guarantee that initial implementation of MVCC for cache API (storing all entries in near tx) works as expected. And the test is rather fine-grained, I do not see it's value for current MVCC implementation. > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16781673#comment-16781673 ] Andrew Mashenkov commented on IGNITE-9470: -- [~Pavlukhin], Looks good, but what's wrong with removed test testCleanupWaitsForGet2? > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16780536#comment-16780536 ] Ignite TC Bot commented on IGNITE-9470: --- {panel:title=-- Run :: All: No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=3199880buildTypeId=IgniteTests24Java8_RunAll] > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16775030#comment-16775030 ] Ivan Pavlukhin commented on IGNITE-9470: [~amashenkov], I have updated PR according to your comments. TC tests are running. > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16774297#comment-16774297 ] Andrew Mashenkov commented on IGNITE-9470: -- [~Pavlukhin], I've some comment to the PR. # IndexingSPI doesn't support mvcc. Let's create a ticket to rework public interface and remute failed tests. For now, I'd add IndexingSPI checks into cache validation procedure and forbid it's usage. # CachePredicate is for internal usage only and it can't threw any exception. Let's remove 'mockEntryPredicate' and revert changes in test. Moreover this change overlap IndexingSPI failover. # Next check looks useless as class childs can be moved to Mvcc suite. {noformat} @Before public void ensureForcedMvcc() { assert MvccFeatureChecker.forcedMvcc(); } {noformat} > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.
[ https://issues.apache.org/jira/browse/IGNITE-9470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16769315#comment-16769315 ] Ivan Pavlukhin commented on IGNITE-9470: There is a number of tests ignored referring to current ticket. Let's check and unignore tests which pass. > MVCC TX: Mvcc transactions should throw proper exception when rolled back. > -- > > Key: IGNITE-9470 > URL: https://issues.apache.org/jira/browse/IGNITE-9470 > Project: Ignite > Issue Type: Bug > Components: jdbc, mvcc, odbc >Reporter: Roman Kondakov >Assignee: Ivan Pavlukhin >Priority: Major > Labels: Muted_test, mvcc_stabilization_stage_1, transactions > Fix For: 2.8 > > > When MVCC transaction is rolled back due to a write conflict it throws > {{CacheException}} with "Mvcc version mismatch" message. This behavior > violates Ignite transactions API. Instead it should throw > {{TransactionRollbackException}} with a clear message like a "Transaction has > been aborted due to a write conflict (Please try again.)" > It is also need to propogate this changes to JDBC and ODBC components and fix > mvcc tests. > > In some tests we have to repeat tx operation in case of version conflict. > Most likely, we can rely to caused-exception with some meaningful type (e.g. > MvccVersionMismatchException) to repeat operation. > Pay attention that tx could be aborted at different stages, but we should > fail consistently. Some examples: > 1. Before next operation in tx started. > 2. While operation in tx is in progress. > 3. When {{tx.commit()}} is called. -- This message was sent by Atlassian JIRA (v7.6.3#76005)