Hello, Igniters.

I working on issue https://issues.apache.org/jira/browse/IGNITE-5712
I found that .Net client perform transaction operation(`tx.close()`) in
thread that not owns transaction.

So I can't include checks for threadId in my pull request.

Is it a bug or a desirable behabiour?

With my new check I got following stack trace:

Check:

`assert (threadId() == Thread.currentThread().getId());`

Exception:

Test(s) failed. System.AggregateException : One or more errors occurred.
----> Apache.Ignite.Core.Common.IgniteException : Java exception occurred
[class=java.lang.AssertionError, message=] ---->
Apache.Ignite.Core.Common.JavaException : java.lang.AssertionError at
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.enter0(TransactionProxyImpl.java:113)
at
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.enter(TransactionProxyImpl.java:106)
at
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.close(TransactionProxyImpl.java:317)
at
org.apache.ignite.internal.processors.platform.transactions.PlatformTransactions.txClose(PlatformTransactions.java:136)
at
org.apache.ignite.internal.processors.platform.transactions.PlatformTransactions.processInLongOutLong(PlatformTransactions.java:178)
at
org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inLongOutLong(PlatformTargetProxyImpl.java:53)
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean
includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32
millisecondsTimeout, CancellationToken cancellationToken) at
System.Threading.Tasks.Task.Wait() at
Apache.Ignite.Core.Tests.Cache.CacheAbstractTransactionalTest.TestTxStateAndExceptions()
in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core.Tests\Cache\CacheAbstractTransactionalTest.cs:line
510 --IgniteException at
Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* target,
Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte*
errMsgChars, Int32 errMsgCharsLen, SByte* stackTraceChars, Int32
stackTraceCharsLen, Void* errData, Int32 errDataLen) in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\UnmanagedCallbacks.cs:line
1066 at
Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.TargetInLongOutLong(Void*
ctx, Void* target, Int32 opType, Int64 val) at
Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.TargetInLongOutLong(IUnmanagedTarget
target, Int32 opType, Int64 memPtr) in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\UnmanagedUtils.cs:line
429 at Apache.Ignite.Core.Impl.PlatformTarget.DoOutInOp(Int32 type, Int64
val) in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\PlatformTarget.cs:line
717 at
Apache.Ignite.Core.Impl.Transactions.TransactionsImpl.TxClose(TransactionImpl
tx) in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Transactions\TransactionsImpl.cs:line
216 at Apache.Ignite.Core.Impl.Transactions.TransactionImpl.Close() in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Transactions\TransactionImpl.cs:line
442 at
Apache.Ignite.Core.Impl.Transactions.TransactionImpl.<CloseWhenComplete>b__d(Task
x) in
c:\BuildAgent\work\820be461cd64b574\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Transactions\TransactionImpl.cs:line
460 at System.Threading.Tasks.Task.Execute() --JavaException -------
Stderr: ------- Test started:
CacheAbstractTransactionalTest.TestTxStateAndExceptions Test finished:
CacheAbstractTransactionalTest.TestTxStateAndExceptions
-- 
Nikolay Izhikov
nizhikov....@gmail.com

Reply via email to