[ https://issues.apache.org/jira/browse/IGNITE-5786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16096161#comment-16096161 ]
ASF GitHub Bot commented on IGNITE-5786: ---------------------------------------- GitHub user ptupitsyn opened a pull request: https://github.com/apache/ignite/pull/2331 IGNITE-5786 .NET: Fix cache store session handling for cross-cache transactions You can merge this pull request into a Git repository by running: $ git pull https://github.com/ptupitsyn/ignite ignite-5786 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/2331.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2331 ---- commit 70d0f9918c708cb117e69163cc7b7c119c9a693c Author: Dmitriy Shabalin <dshaba...@gridgain.com> Date: 2017-07-20T08:08:20Z IGNITE-4728 Web Console: Saved last succeeded state and redirect to it on reload. commit 02a1bdca57ce6af7fe7636b0a9f99048c89b88b6 Author: Andrey Novikov <anovi...@gridgain.com> Date: 2017-07-20T08:47:49Z IGNITE-5788 Web Console: Fixed dependencies for maven project with c3p0. commit 162fd2258066543b95633daf81ca5f20e85e3562 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T13:32:44Z IGNITE-5786 .NET: Transaction fails with multiple write-through caches commit fe3f524e1bf350266d19051c85991b7c39ded3ff Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T13:57:17Z wip commit 611bb3eebeb5f9f256147e4beb1465687e63f900 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T14:01:41Z wip commit e7d3b814bba56257a784c4ca488a64ad5063d355 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T14:02:12Z wip commit 2e01158b9d3556e9e64eea02f1b07f0f28b41133 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T14:05:28Z tests done commit 3217782591ae19e891e8b3edbfd0f3cc60aab710 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T14:06:47Z tests done commit cc273a6e6e516d343b3157591f8cad72271abc60 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T14:09:44Z wip commit b8663694cde0d0d2a7f39dca93bf3bc998655111 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T19:29:25Z wip commit c69912dc315632a390bf9c31e1e7b65f631a1cd2 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T19:29:50Z wip commit e795ef51815bd3d18c4f605d22bde19f9f54d6f8 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T19:52:09Z Fix tests according to "once per store instance" logic commit cb0d75d525cbb9f90bd5ff52f917817d8611f4de Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-20T19:56:27Z wip TODO commit 72000904844529401c9d80c50f59748b70e83219 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T09:43:57Z wip commit 7b6a452615979caa9978cd23b7dabf6f74da9fa9 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T10:07:02Z wip commit 3b2f0aa8f6eaa9273576809def8c5326067c32a4 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T10:54:52Z fix Java side commit 98d7e65cf019a797ef5b0d2028615eaad5fa2ec2 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T10:56:05Z fix .NET commit 38b4a3987e0e816ef514fc9f60a67c3be2c6f2b0 Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T11:32:41Z fix NPE commit 4212d0c85578ce481a01973dd6c1bb6bf391171c Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T11:37:41Z wip commit ce5b2b410bab863d35cf9260ca15ea995e92180d Author: Pavel Tupitsyn <ptupit...@apache.org> Date: 2017-07-21T11:47:52Z Tests adjusted, all done ---- > .NET: Transaction fails with multiple write-through caches > ---------------------------------------------------------- > > Key: IGNITE-5786 > URL: https://issues.apache.org/jira/browse/IGNITE-5786 > Project: Ignite > Issue Type: Bug > Components: platforms > Affects Versions: 1.6 > Reporter: Pavel Tupitsyn > Assignee: Pavel Tupitsyn > Priority: Critical > Labels: .NET > Fix For: 2.2 > > > To reproduce: create two caches with {{WriteThrough=true}} and some > {{CacheStore}} (implementation can be empty). > Attempt to update both caches within a transaction: > {code} > using (var tx = ignite.GetTransactions().TxStart()) > { > cache1.Put(1, 1); > cache2.Put(1, 1); > tx.Commit(); > } > {code} > Exception occurs: > {code} > (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$16@17695df3javax.cache.integration.CacheWriterException: > PlatformNativeException [cause=System.InvalidOperationException > [idHash=1909546776, hash=1265661973, > ClassName=System.InvalidOperationException, Data=null, ExceptionMethod=8 > Get > Apache.Ignite.Core, Version=2.1.0.19388, Culture=neutral, > PublicKeyToken=a487a7ff0b2aaa4a > Apache.Ignite.Core.Impl.Handle.HandleRegistry > T Get[T](Int64, Boolean), HelpURL=null, HResult=-2146233079, > InnerException=null, Message=Resource handle has been released (is Ignite > stopping?)., RemoteStackIndex=0, RemoteStackTraceString=null, > Source=Apache.Ignite.Core, StackTraceString= at > Apache.Ignite.Core.Impl.Handle.HandleRegistry.Get[T](Int64 id, Boolean > throwOnAbsent) in > C:\w\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Handle\HandleRegistry.cs:line > 262 > at > Apache.Ignite.Core.Impl.Cache.Store.CacheStoreInternal`2.Invoke(IBinaryStream > stream, Ignite grid) in > C:\w\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Cache\Store\CacheStoreInternal.cs:line > 112 > at > Apache.Ignite.Core.Impl.Cache.Store.CacheStore.Invoke(PlatformMemoryStream > stream, Ignite grid) in > C:\w\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Cache\Store\CacheStore.cs:line > 127 > at > Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.CacheStoreInvoke(Int64 > memPtr) in > C:\w\incubator-ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\UnmanagedCallbacks.cs:line > 366 > {code} > Explanation: > * Cache stores share same session within a transaction > * Session in Java is uses to store .NET session handle, so both stores have > the same .NET session (which is good: consistent with Java) > * Each store calls sessionEnd, so session gets released multiple times - this > causes HandleRegistry exception > Current unit test uses Spring XML with shared > {{PlatformDotNetCacheStoreFactory}}, which caches created store instance for > some reason, so the bug is hidden, since both caches use the same store > instance. -- This message was sent by Atlassian JIRA (v6.4.14#64029)