Repository: ignite
Updated Branches:
  refs/heads/ignite-1537 a8f6c24d2 -> 8b09766b0


ignite-1.5 Fixed hang on metadata update inside put in atomic cache when 
topology read lock is held.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8b09766b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8b09766b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8b09766b

Branch: refs/heads/ignite-1537
Commit: 8b09766b039ed62e9f6119b16d7502bd5d249a38
Parents: a8f6c24
Author: sboikov <[email protected]>
Authored: Wed Dec 23 12:02:25 2015 +0300
Committer: sboikov <[email protected]>
Committed: Wed Dec 23 12:02:25 2015 +0300

----------------------------------------------------------------------
 .../cache/transactions/IgniteTxManager.java         | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8b09766b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 8ff3b8b..d384e4e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1816,8 +1816,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
             this.evtNodeId = evtNodeId;
         }
 
-        /** {@inheritDoc} */
-        @Override public void onTimeout() {
+        /**
+         *
+         */
+        private void onTimeout0() {
             try {
                 cctx.kernalContext().gateway().readLock();
             }
@@ -1870,6 +1872,16 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
                 cctx.kernalContext().gateway().readUnlock();
             }
         }
+
+        /** {@inheritDoc} */
+        @Override public void onTimeout() {
+            // Should not block timeout thread.
+            cctx.kernalContext().closure().runLocalSafe(new Runnable() {
+                @Override public void run() {
+                    onTimeout0();
+                }
+            });
+        }
     }
 
     /**

Reply via email to