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(); + } + }); + } } /**
