Sergey Stronchinskiy created IGNITE-13214:
---------------------------------------------
Summary: .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
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:
using (var tx = Transactions.TxStart(TransactionConcurrency.Optimistic, TransactionIsolation.Serializable))
{
var before = cache.Get(1);
barier.SignalAndWait();
barier.SignalAndWait();
tx.Commit();
}
Apache.Ignite.Core.Transactions.TransactionOptimisticException : Failed to prepare transaction (lock conflict): GridNearTxLocal [mappings=IgniteTxMappingsImpl [],
`Cache` is `IIgnite.Cache<int, int>()` and `Transactions` is `IIgnite.GetTransactions()`
--
This message was sent by Atlassian Jira
(v8.3.4#803005)