[33/50] [abbrv] ignite git commit: IGNITE-9246 Fixed infinite wait on topology future during tx remap - Fixes #4572.

2018-08-29 Thread agoncharuk
IGNITE-9246 Fixed infinite wait on topology future during tx remap - Fixes 
#4572.


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

Branch: refs/heads/ignite-9273
Commit: 9fdf95a8b285fa4aeafd761ecc96f3e4e8ece76b
Parents: 3882ec0
Author: Aleksei Scherbakov 
Authored: Mon Aug 27 15:39:07 2018 +0300
Committer: Alexey Goncharuk 
Committed: Mon Aug 27 15:39:07 2018 +0300

--
 .../dht/GridDhtTransactionalCacheAdapter.java   |   2 +
 .../colocated/GridDhtColocatedLockFuture.java   |  65 +++---
 ...arOptimisticSerializableTxPrepareFuture.java |  19 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |  21 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |  51 +++--
 .../cache/transactions/IgniteTxHandler.java |  80 ++--
 .../timeout/GridTimeoutProcessor.java   |  94 +
 .../transactions/TxRollbackOnTimeoutTest.java   | 199 ++-
 8 files changed, 439 insertions(+), 92 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/9fdf95a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index 11666c9..f93e6a3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -695,6 +695,8 @@ public abstract class GridDhtTransactionalCacheAdapter extends GridDhtCach
 final IgniteThread thread = (IgniteThread)curThread;
 
 if (thread.cachePoolThread()) {
+// Near transaction's finish on timeout will unlock topFut 
if it was held for too long,
+// so need to listen with timeout. This is not true for 
optimistic transactions.
 topFut.listen(new 
CI1>() {
 @Override public void 
apply(IgniteInternalFuture fut) {
 
ctx.kernalContext().closure().runLocalWithThreadPolicy(thread, new Runnable() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/9fdf95a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index 27b3667..9dbb8be 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -864,19 +864,15 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 markInitialized();
 }
 else {
-fut.listen(new 
CI1>() {
-@Override public void 
apply(IgniteInternalFuture fut) {
-try {
-fut.get();
+cctx.time().waitAsync(fut, tx == null ? 0 : 
tx.remainingTime(), (e, timedOut) -> {
+if (errorOrTimeoutOnTopologyVersion(e, timedOut))
+return;
 
-mapOnTopology(remap, c);
-}
-catch (IgniteCheckedException e) {
-onDone(e);
-}
-finally {
-cctx.shared().txContextReset();
-}
+try {
+mapOnTopology(remap, c);
+}
+finally {
+cctx.shared().txContextReset();
 }
 });
 }
@@ -1482,6 +1478,23 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 }
 
 /**
+ * @param e Exception.
+ * @param timedOut {@code True} if timed out.
+ */
+private boolean errorO

ignite git commit: IGNITE-9246 Fixed infinite wait on topology future during tx remap - Fixes #4572.

2018-08-27 Thread agoncharuk
Repository: ignite
Updated Branches:
  refs/heads/master 3882ec048 -> 9fdf95a8b


IGNITE-9246 Fixed infinite wait on topology future during tx remap - Fixes 
#4572.


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

Branch: refs/heads/master
Commit: 9fdf95a8b285fa4aeafd761ecc96f3e4e8ece76b
Parents: 3882ec0
Author: Aleksei Scherbakov 
Authored: Mon Aug 27 15:39:07 2018 +0300
Committer: Alexey Goncharuk 
Committed: Mon Aug 27 15:39:07 2018 +0300

--
 .../dht/GridDhtTransactionalCacheAdapter.java   |   2 +
 .../colocated/GridDhtColocatedLockFuture.java   |  65 +++---
 ...arOptimisticSerializableTxPrepareFuture.java |  19 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |  21 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |  51 +++--
 .../cache/transactions/IgniteTxHandler.java |  80 ++--
 .../timeout/GridTimeoutProcessor.java   |  94 +
 .../transactions/TxRollbackOnTimeoutTest.java   | 199 ++-
 8 files changed, 439 insertions(+), 92 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/9fdf95a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index 11666c9..f93e6a3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -695,6 +695,8 @@ public abstract class GridDhtTransactionalCacheAdapter extends GridDhtCach
 final IgniteThread thread = (IgniteThread)curThread;
 
 if (thread.cachePoolThread()) {
+// Near transaction's finish on timeout will unlock topFut 
if it was held for too long,
+// so need to listen with timeout. This is not true for 
optimistic transactions.
 topFut.listen(new 
CI1>() {
 @Override public void 
apply(IgniteInternalFuture fut) {
 
ctx.kernalContext().closure().runLocalWithThreadPolicy(thread, new Runnable() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/9fdf95a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index 27b3667..9dbb8be 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -864,19 +864,15 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 markInitialized();
 }
 else {
-fut.listen(new 
CI1>() {
-@Override public void 
apply(IgniteInternalFuture fut) {
-try {
-fut.get();
+cctx.time().waitAsync(fut, tx == null ? 0 : 
tx.remainingTime(), (e, timedOut) -> {
+if (errorOrTimeoutOnTopologyVersion(e, timedOut))
+return;
 
-mapOnTopology(remap, c);
-}
-catch (IgniteCheckedException e) {
-onDone(e);
-}
-finally {
-cctx.shared().txContextReset();
-}
+try {
+mapOnTopology(remap, c);
+}
+finally {
+cctx.shared().txContextReset();
 }
 });
 }
@@ -1482,6 +1478,23 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 }
 
 /**
+ * @param e Exception.
+ * @p