[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17154798#comment-17154798 ] Pavel Tupitsyn commented on IGNITE-13214: - Merged to master: 0aceb369c0097dadf94fae75456521baf678005a Cherry-picked to ignite-2.9: 00abad78c82c67ffc8066e4f8d7327c6e4733561 > .NET different behavior when using TransactionScope and ITransactions.Start > > > Key: IGNITE-13214 > URL: https://issues.apache.org/jira/browse/IGNITE-13214 > Project: Ignite > Issue Type: Bug > Components: platforms >Reporter: Sergey Stronchinskiy >Assignee: Pavel Tupitsyn >Priority: Critical > Labels: .NET, transactions > Fix For: 2.9 > > Time Spent: 1.5h > Remaining Estimate: 0h > > Next code runs fine: > {code:c#} > var barier = new Barrier(2); > var cache = Cache(); > cache.Put(1, 1); > var task = Task.Factory.StartNew(() => > { > var otherCache = Cache(); > barier.SignalAndWait(); > otherCache.Put(1, 10); > barier.SignalAndWait(); > }); > using (var txscp = new > TransactionScope(TransactionScopeOption.Required, new > TransactionOptions{IsolationLevel = IsolationLevel.Serializable})) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > txscp.Complete(); > } > Task.WaitAll(task); > barier.Dispose(); > {code} > When I switch to Ignite transactions I get exception: > {code:c#} > using (var tx = > Transactions.TxStart(TransactionConcurrency.Optimistic, > TransactionIsolation.Serializable)) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > tx.Commit(); > } > {code} > {noformat} > Apache.Ignite.Core.Transactions.TransactionOptimisticException : Failed to > prepare transaction (lock conflict): GridNearTxLocal > [mappings=IgniteTxMappingsImpl [], > {noformat} > _Cache_ is _IIgnite.Cache()_ and _Transactions_ is > _IIgnite.GetTransactions()_ -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17154106#comment-17154106 ] Ignite TC Bot commented on IGNITE-13214: {panel:title=Branch: [pull/8004/head] Base: [master] : Possible Blockers (5)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}PDS 4{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5450402]] * IgnitePdsTestSuite4: RebalanceCancellationTest.testRebalanceNoneBltNodeFailedOnMixedCluster - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Cache 2{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5450383]] * IgniteCacheTestSuite2: GridCachePartitionedNearDisabledTxMultiThreadedSelfTest.testOptimisticSerializableCommitMultithreaded - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Cache 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5450382]] * IgniteBinaryCacheTestSuite: GridCacheBalancingStoreSelfTest.testConcurrentLoad - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Basic 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5450362]] * IgniteBasicTestSuite: WALRecordSerializationTest.testAllWalRecordsSerializedCompressedAndThenDeserializedSuccessfully - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Basic 2{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5450323]] * IgniteComputeBasicConfigVariationsFullApiTestSuite: IgniteComputeConfigVariationsFullApiTest_17.testDeployExecuteByName - Test has low fail rate in base branch 0,0% and is not flaky {panel} {panel:title=Branch: [pull/8004/head] Base: [master] : New Tests (17)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#8b}Platform .NET (Long Running){color} [tests 3] * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} {color:#8b}Platform .NET{color} [tests 3] * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}exe: OptimisticTransactionTest.TestExplicitOptimisticTransactionThrowsOptimisticExceptionOnConflict - PASSED{color} * {color:#013220}exe: OptimisticTransactionTest.TestAmbientOptimisticTransactionThrowsOptimisticExceptionOnConflict - PASSED{color} {color:#8b}Platform .NET (Core Linux){color} [tests 3] * {color:#013220}dll: CachePartitionedTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}dll: OptimisticTransactionTest.TestExplicitOptimisticTransactionThrowsOptimisticExceptionOnConflict - PASSED{color} * {color:#013220}dll: OptimisticTransactionTest.TestAmbientOptimisticTransactionThrowsOptimisticExceptionOnConflict - PASSED{color} {color:#8b}Service Grid{color} [tests 4] * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=d4f916bd-963e-4875-b0d9-b6cd769a32b4, topVer=0, nodeId8=08c81af0, msg=, type=NODE_JOINED, tstamp=1594248504235], val2=AffinityTopologyVersion [topVer=2876465466042446570, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=d4f916bd-963e-4875-b0d9-b6cd769a32b4, topVer=0, nodeId8=08c81af0, msg=, type=NODE_JOINED, tstamp=1594248504235], val2=AffinityTopologyVersion [topVer=2876465466042446570, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=fa3ad903371-ec906005-587a-4dd2-be8c-91ce64d48350, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=7ad4ae83-15c2-4a1f-93a5-fcb0acf73fbd, topVer=0, nodeId8=7ad4ae83, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1594248504235]], val2=AffinityTopologyVersion [topVer=7244792805766858131, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=fa3ad903371-ec906005-587a-4dd2-be8c-91ce64d48350, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=7ad4ae83-15c2-4a1f-93a5-fcb0acf73fbd, topVer=0, nodeId8=7ad4ae83, msg=null,
[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17154033#comment-17154033 ] Sergey Stronchinskiy commented on IGNITE-13214: --- [~ptupitsyn] Looks great! > .NET different behavior when using TransactionScope and ITransactions.Start > > > Key: IGNITE-13214 > URL: https://issues.apache.org/jira/browse/IGNITE-13214 > Project: Ignite > Issue Type: Bug > Components: platforms >Reporter: Sergey Stronchinskiy >Assignee: Pavel Tupitsyn >Priority: Critical > Labels: .NET, transactions > Fix For: 2.9 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Next code runs fine: > {code:c#} > var barier = new Barrier(2); > var cache = Cache(); > cache.Put(1, 1); > var task = Task.Factory.StartNew(() => > { > var otherCache = Cache(); > barier.SignalAndWait(); > otherCache.Put(1, 10); > barier.SignalAndWait(); > }); > using (var txscp = new > TransactionScope(TransactionScopeOption.Required, new > TransactionOptions{IsolationLevel = IsolationLevel.Serializable})) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > txscp.Complete(); > } > Task.WaitAll(task); > barier.Dispose(); > {code} > When I switch to Ignite transactions I get exception: > {code:c#} > using (var tx = > Transactions.TxStart(TransactionConcurrency.Optimistic, > TransactionIsolation.Serializable)) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > tx.Commit(); > } > {code} > {noformat} > Apache.Ignite.Core.Transactions.TransactionOptimisticException : Failed to > prepare transaction (lock conflict): GridNearTxLocal > [mappings=IgniteTxMappingsImpl [], > {noformat} > _Cache_ is _IIgnite.Cache()_ and _Transactions_ is > _IIgnite.GetTransactions()_ -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17154031#comment-17154031 ] Pavel Tupitsyn commented on IGNITE-13214: - [~GuruStron] please have a look again, I've addressed the comments. Added more tests and fixed error handling for ambient transactions. > .NET different behavior when using TransactionScope and ITransactions.Start > > > Key: IGNITE-13214 > URL: https://issues.apache.org/jira/browse/IGNITE-13214 > Project: Ignite > Issue Type: Bug > Components: platforms >Reporter: Sergey Stronchinskiy >Assignee: Pavel Tupitsyn >Priority: Critical > Labels: .NET, transactions > Fix For: 2.9 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > Next code runs fine: > {code:c#} > var barier = new Barrier(2); > var cache = Cache(); > cache.Put(1, 1); > var task = Task.Factory.StartNew(() => > { > var otherCache = Cache(); > barier.SignalAndWait(); > otherCache.Put(1, 10); > barier.SignalAndWait(); > }); > using (var txscp = new > TransactionScope(TransactionScopeOption.Required, new > TransactionOptions{IsolationLevel = IsolationLevel.Serializable})) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > txscp.Complete(); > } > Task.WaitAll(task); > barier.Dispose(); > {code} > When I switch to Ignite transactions I get exception: > {code:c#} > using (var tx = > Transactions.TxStart(TransactionConcurrency.Optimistic, > TransactionIsolation.Serializable)) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > tx.Commit(); > } > {code} > {noformat} > Apache.Ignite.Core.Transactions.TransactionOptimisticException : Failed to > prepare transaction (lock conflict): GridNearTxLocal > [mappings=IgniteTxMappingsImpl [], > {noformat} > _Cache_ is _IIgnite.Cache()_ and _Transactions_ is > _IIgnite.GetTransactions()_ -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17153101#comment-17153101 ] Ignite TC Bot commented on IGNITE-13214: {panel:title=Branch: [pull/8004/head] Base: [master] : Possible Blockers (18)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Platform .NET (Long Running){color} [[tests 0 TIMEOUT |https://ci.ignite.apache.org/viewLog.html?buildId=5446863]] {color:#d04437}PDS 1{color} [[tests 0 Exit Code |https://ci.ignite.apache.org/viewLog.html?buildId=5446855]] {color:#d04437}Cache 5{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5446842]] * IgniteCacheWithIndexingTestSuite: GridCacheSqlDdlClusterReadOnlyModeTest.testAlterTableAllowed - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Streamers{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5446805]] * IgniteKafkaStreamerSelfTestSuite: IgniteSinkConnectorTest.testSinkPutsWithTransformation - Test has low fail rate in base branch 1,3% and is not flaky {color:#d04437}Queries 2{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5446802]] * IgniteBinaryCacheQueryTestSuite2: DynamicEnableIndexingBasicSelfTest.testEnableDynamicIndexing[hasNear=false,nodeIdx=2,cacheMode=REPLICATED,atomicityMode=ATOMIC] - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}Cache 1{color} [[tests 11|https://ci.ignite.apache.org/viewLog.html?buildId=5446838]] * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopMultithreaded - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopImplicitTransactions - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopExplicitTransactionsReplicated - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopExplicitTransactions - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopImplicitTransactionsReplicated - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopAtomic - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopImplicitMvccTransactionsReplicated - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: GridCacheStopSelfTest.testStopImplicitMvccTransactions - Test has low fail rate in base branch 0,0% and is not flaky * IgniteBinaryCacheTestSuite: internal.IgniteInternalCacheRemoveTest - History for base branch is absent. * IgniteBinaryCacheTestSuite: cache.GridCacheKeyCheckNearEnabledSelfTest - History for base branch is absent. * IgniteBinaryCacheTestSuite: cache.GridCacheKeyCheckSelfTest - History for base branch is absent. ... and 0 tests blockers {color:#d04437}Cache 8{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5446845]] * IgniteCacheTestSuite8: GridCacheAtomicPartitionedTckMetricsSelfTestImpl.testGetMetricsDisable - Test has low fail rate in base branch 0,0% and is not flaky {color:#d04437}MVCC Cache 1{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5446873]] * IgniteCacheMvccTestSuite1: CacheFutureExceptionSelfTest.testAsyncCacheFuture - Test has low fail rate in base branch 0,0% and is not flaky {panel} {panel:title=Branch: [pull/8004/head] Base: [master] : New Tests (20)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#8b}PDS (Indexing){color} [tests 4] * {color:#013220}IgnitePdsWithIndexingCoreTestSuite: IgniteWalRebalanceTest.testSwitchHistoricalRebalanceToFullAndClientJoin - PASSED{color} * {color:#013220}IgnitePdsWithIndexingCoreTestSuite: IgniteWalRebalanceTest.testMultipleNodesFailHistoricalRebalance - PASSED{color} * {color:#013220}IgnitePdsWithIndexingCoreTestSuite: IgniteWalRebalanceTest.testSwitchHistoricalRebalanceToFullDueToFailOnCreatingWalIterator - PASSED{color} * {color:#013220}IgnitePdsWithIndexingCoreTestSuite: IgniteWalRebalanceTest.testSwitchHistoricalRebalanceToFullWhileIteratingOverWAL - PASSED{color} {color:#8b}Platform .NET (Long Running){color} [tests 3] * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} * {color:#013220}exe: CacheAbstractTransactionalTest.TestTransactionScopeWithSerializableIsolationLocksKeysOnRead - PASSED{color} {color:#8b}Platform .NET{color} [tests 1] * {color:#013220}exe:
[jira] [Commented] (IGNITE-13214) .NET different behavior when using TransactionScope and ITransactions.Start
[ https://issues.apache.org/jira/browse/IGNITE-13214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17153080#comment-17153080 ] Sergey Stronchinskiy commented on IGNITE-13214: --- [~ptupitsyn] Sure, please see my comments on GitHub. > .NET different behavior when using TransactionScope and ITransactions.Start > > > Key: IGNITE-13214 > URL: https://issues.apache.org/jira/browse/IGNITE-13214 > Project: Ignite > Issue Type: Bug > Components: platforms >Reporter: Sergey Stronchinskiy >Assignee: Pavel Tupitsyn >Priority: Critical > Labels: .NET, transactions > Fix For: 2.9 > > Time Spent: 20m > Remaining Estimate: 0h > > Next code runs fine: > {code:c#} > var barier = new Barrier(2); > var cache = Cache(); > cache.Put(1, 1); > var task = Task.Factory.StartNew(() => > { > var otherCache = Cache(); > barier.SignalAndWait(); > otherCache.Put(1, 10); > barier.SignalAndWait(); > }); > using (var txscp = new > TransactionScope(TransactionScopeOption.Required, new > TransactionOptions{IsolationLevel = IsolationLevel.Serializable})) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > txscp.Complete(); > } > Task.WaitAll(task); > barier.Dispose(); > {code} > When I switch to Ignite transactions I get exception: > {code:c#} > using (var tx = > Transactions.TxStart(TransactionConcurrency.Optimistic, > TransactionIsolation.Serializable)) > { > var before = cache.Get(1); > barier.SignalAndWait(); > barier.SignalAndWait(); > tx.Commit(); > } > {code} > {noformat} > Apache.Ignite.Core.Transactions.TransactionOptimisticException : Failed to > prepare transaction (lock conflict): GridNearTxLocal > [mappings=IgniteTxMappingsImpl [], > {noformat} > _Cache_ is _IIgnite.Cache()_ and _Transactions_ is > _IIgnite.GetTransactions()_ -- This message was sent by Atlassian Jira (v8.3.4#803005)