[jira] [Commented] (IGNITE-9470) MVCC TX: Mvcc transactions should throw proper exception when rolled back.

2019-03-01 Thread Ivan Pavlukhin (JIRA)


[ 
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.

2019-03-01 Thread Andrew Mashenkov (JIRA)


[ 
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.

2019-02-28 Thread Ignite TC Bot (JIRA)


[ 
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.

2019-02-22 Thread Ivan Pavlukhin (JIRA)


[ 
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.

2019-02-21 Thread Andrew Mashenkov (JIRA)


[ 
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.

2019-02-15 Thread Ivan Pavlukhin (JIRA)


[ 
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)