[17/35] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/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 9a8280f..77634bd 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
@@ -291,7 +291,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 public void rollbackTransactionsForCache(int cacheId) {
 rollbackTransactionsForCache(cacheId, nearIdMap);
 
-rollbackTransactionsForCache(cacheId, threadMap);
+rollbackTransactionsForCache(cacheId, idMap);
 }
 
 /**
@@ -304,7 +304,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 
 for (IgniteTxEntry entry : tx.allEntries()) {
 if (entry.cacheId() == cacheId) {
-rollbackTx(tx);
+rollbackTx(tx, false);
 
 break;
 }
@@ -316,8 +316,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 @Override public void onDisconnected(IgniteFuture reconnectFut) {
 txFinishSync.onDisconnected(reconnectFut);
 
-for (Map.Entry e : threadMap.entrySet())
-rollbackTx(e.getValue());
+for (IgniteInternalTx tx : idMap.values())
+rollbackTx(tx, true);
+for (IgniteInternalTx tx : nearIdMap.values())
+rollbackTx(tx, true);
 
 IgniteClientDisconnectedException err =
 new IgniteClientDisconnectedException(reconnectFut, "Client node 
disconnected.");
@@ -378,6 +380,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 X.println(">>> Transaction manager memory stats [igniteInstanceName=" 
+ cctx.igniteInstanceName() + ']');
 X.println(">>>   threadMapSize: " + threadMap.size());
 X.println(">>>   idMap [size=" + idMap.size() + ']');
+X.println(">>>   nearIdMap [size=" + nearIdMap.size() + ']');
 X.println(">>>   completedVersSortedSize: " + 
completedVersSorted.size());
 X.println(">>>   completedVersHashMapSize: " + 
completedVersHashMap.sizex());
 }
@@ -490,14 +493,15 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 IgniteInternalTx t;
 
 if ((t = txIdMap.putIfAbsent(tx.xidVersion(), tx)) == null) {
-// Add both, explicit and implicit transactions.
-// Do not add remote and dht local transactions as remote node may 
have the same thread ID
-// and overwrite local transaction.
 if (tx.local() && !tx.dht()) {
-if (cacheCtx == null || !cacheCtx.systemTx())
-threadMap.put(tx.threadId(), tx);
-else
-sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+assert tx instanceof GridNearTxLocal : tx;
+
+if (!tx.implicit()) {
+if (cacheCtx == null || !cacheCtx.systemTx())
+threadMap.put(tx.threadId(), tx);
+else
+sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+}
 }
 
 // Handle mapped versions.
@@ -633,11 +637,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 /**
  * @return Local transaction.
  */
-@SuppressWarnings({"unchecked"})
-@Nullable public  T localTx() {
-IgniteInternalTx tx = tx();
+@Nullable public IgniteTxLocalAdapter localTx() {
+IgniteTxLocalAdapter tx = tx();
 
-return tx != null && tx.local() ? (T)tx : null;
+return tx != null && tx.local() ? tx : null;
 }
 
 /**
@@ -719,15 +722,6 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 }
 
 /**
- * @return Local transaction.
- */
-@Nullable public IgniteInternalTx localTxx() {
-IgniteInternalTx tx = tx();
-
-return tx != null && tx.local() ? tx : null;
-}
-
-/**
  * @return User transaction for current thread.
  */
 @Nullable public GridNearTxLocal userTx() {
@@ -1215,32 +1209,32 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 collectPendingVersions(dhtTxLoc);
 }
 
-// 4. Unlock write resources.
+// 3. Unlock write resources.
 unlockMultiple(tx, tx.writeEntries());
 
-// 5. Unlock read 

[18/35] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
ignite-6181 Tx rollback on timeout


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

Branch: refs/heads/ignite-3479
Commit: 5af30cf118aeb3910398e6b15dbe2a51b62746d7
Parents: 27295f2
Author: sboikov 
Authored: Fri Sep 22 11:20:16 2017 +0300
Committer: sboikov 
Committed: Fri Sep 22 11:20:16 2017 +0300

--
 .../IgniteDiagnosticPrepareContext.java |   4 +-
 .../processors/cache/CacheMetricsImpl.java  |   2 +-
 .../processors/cache/GridCacheAdapter.java  |  18 +-
 .../processors/cache/GridCacheMapEntry.java |   9 +-
 .../processors/cache/GridCacheMvccManager.java  |   5 +-
 .../GridDistributedTxRemoteAdapter.java |   2 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   6 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  79 ++-
 .../distributed/near/GridNearLockFuture.java| 116 ++--
 .../near/GridNearOptimisticTxPrepareFuture.java |   3 +-
 .../near/GridNearTransactionalCache.java|   3 -
 .../near/GridNearTxFastFinishFuture.java|  82 +++
 .../near/GridNearTxFinishFuture.java|  23 +-
 .../cache/distributed/near/GridNearTxLocal.java | 303 ++---
 .../distributed/near/NearTxFinishFuture.java|  31 +
 .../cache/transactions/IgniteInternalTx.java|   2 +-
 .../cache/transactions/IgniteTxAdapter.java |  13 +-
 .../cache/transactions/IgniteTxHandler.java |  26 +-
 .../transactions/IgniteTxLocalAdapter.java  |  10 +-
 .../cache/transactions/IgniteTxLocalEx.java |   7 +-
 .../cache/transactions/IgniteTxManager.java |  80 +--
 .../timeout/GridTimeoutProcessor.java   |  23 +-
 .../processors/cache/CacheTxFastFinishTest.java |   9 +-
 .../cache/IgniteTxConfigCacheSelfTest.java  |  14 +
 .../IgniteCacheThreadLocalTxTest.java   | 223 +++
 .../IgniteOptimisticTxSuspendResumeTest.java|   6 +-
 ...ionedMultiNodeLongTxTimeout2FullApiTest.java |  34 +
 .../TxRollbackOnTimeoutNearCacheTest.java   |  28 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |  47 ++
 .../transactions/TxRollbackOnTimeoutTest.java   | 655 +++
 .../IgniteCacheFullApiSelfTestSuite.java|   2 +
 .../testsuites/IgniteCacheTestSuite6.java   |  10 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java|   4 +-
 35 files changed, 1627 insertions(+), 258 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 378dc74..ed8d35e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -75,7 +75,7 @@ public class IgniteDiagnosticPrepareContext {
  * @param keys Entry keys.
  * @param msg Initial message.
  */
-public void  txKeyInfo(UUID nodeId, int cacheId, 
Collection keys, String msg) {
+public void txKeyInfo(UUID nodeId, int cacheId, Collection 
keys, String msg) {
 closure(nodeId).add(msg, new TxEntriesInfoClosure(cacheId, keys));
 }
 
@@ -280,4 +280,4 @@ public class IgniteDiagnosticPrepareContext {
 }
 }
 }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d03a6f8..413b60d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -328,7 +328,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxDhtThreadMapSize() {
-return cctx.isNear() && dhtCtx != null ? dhtCtx.tm().threadMapSize() : 
-1;
+return cctx.tm().threadMapSize();
 }
 
 /** {@inheritDoc} */


[17/26] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/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 9a8280f..77634bd 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
@@ -291,7 +291,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 public void rollbackTransactionsForCache(int cacheId) {
 rollbackTransactionsForCache(cacheId, nearIdMap);
 
-rollbackTransactionsForCache(cacheId, threadMap);
+rollbackTransactionsForCache(cacheId, idMap);
 }
 
 /**
@@ -304,7 +304,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 
 for (IgniteTxEntry entry : tx.allEntries()) {
 if (entry.cacheId() == cacheId) {
-rollbackTx(tx);
+rollbackTx(tx, false);
 
 break;
 }
@@ -316,8 +316,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 @Override public void onDisconnected(IgniteFuture reconnectFut) {
 txFinishSync.onDisconnected(reconnectFut);
 
-for (Map.Entry e : threadMap.entrySet())
-rollbackTx(e.getValue());
+for (IgniteInternalTx tx : idMap.values())
+rollbackTx(tx, true);
+for (IgniteInternalTx tx : nearIdMap.values())
+rollbackTx(tx, true);
 
 IgniteClientDisconnectedException err =
 new IgniteClientDisconnectedException(reconnectFut, "Client node 
disconnected.");
@@ -378,6 +380,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 X.println(">>> Transaction manager memory stats [igniteInstanceName=" 
+ cctx.igniteInstanceName() + ']');
 X.println(">>>   threadMapSize: " + threadMap.size());
 X.println(">>>   idMap [size=" + idMap.size() + ']');
+X.println(">>>   nearIdMap [size=" + nearIdMap.size() + ']');
 X.println(">>>   completedVersSortedSize: " + 
completedVersSorted.size());
 X.println(">>>   completedVersHashMapSize: " + 
completedVersHashMap.sizex());
 }
@@ -490,14 +493,15 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 IgniteInternalTx t;
 
 if ((t = txIdMap.putIfAbsent(tx.xidVersion(), tx)) == null) {
-// Add both, explicit and implicit transactions.
-// Do not add remote and dht local transactions as remote node may 
have the same thread ID
-// and overwrite local transaction.
 if (tx.local() && !tx.dht()) {
-if (cacheCtx == null || !cacheCtx.systemTx())
-threadMap.put(tx.threadId(), tx);
-else
-sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+assert tx instanceof GridNearTxLocal : tx;
+
+if (!tx.implicit()) {
+if (cacheCtx == null || !cacheCtx.systemTx())
+threadMap.put(tx.threadId(), tx);
+else
+sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+}
 }
 
 // Handle mapped versions.
@@ -633,11 +637,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 /**
  * @return Local transaction.
  */
-@SuppressWarnings({"unchecked"})
-@Nullable public  T localTx() {
-IgniteInternalTx tx = tx();
+@Nullable public IgniteTxLocalAdapter localTx() {
+IgniteTxLocalAdapter tx = tx();
 
-return tx != null && tx.local() ? (T)tx : null;
+return tx != null && tx.local() ? tx : null;
 }
 
 /**
@@ -719,15 +722,6 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 }
 
 /**
- * @return Local transaction.
- */
-@Nullable public IgniteInternalTx localTxx() {
-IgniteInternalTx tx = tx();
-
-return tx != null && tx.local() ? tx : null;
-}
-
-/**
  * @return User transaction for current thread.
  */
 @Nullable public GridNearTxLocal userTx() {
@@ -1215,32 +1209,32 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 collectPendingVersions(dhtTxLoc);
 }
 
-// 4. Unlock write resources.
+// 3. Unlock write resources.
 unlockMultiple(tx, tx.writeEntries());
 
-// 5. Unlock read 

[18/26] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
ignite-6181 Tx rollback on timeout


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

Branch: refs/heads/ignite-3478
Commit: 5af30cf118aeb3910398e6b15dbe2a51b62746d7
Parents: 27295f2
Author: sboikov 
Authored: Fri Sep 22 11:20:16 2017 +0300
Committer: sboikov 
Committed: Fri Sep 22 11:20:16 2017 +0300

--
 .../IgniteDiagnosticPrepareContext.java |   4 +-
 .../processors/cache/CacheMetricsImpl.java  |   2 +-
 .../processors/cache/GridCacheAdapter.java  |  18 +-
 .../processors/cache/GridCacheMapEntry.java |   9 +-
 .../processors/cache/GridCacheMvccManager.java  |   5 +-
 .../GridDistributedTxRemoteAdapter.java |   2 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   6 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  79 ++-
 .../distributed/near/GridNearLockFuture.java| 116 ++--
 .../near/GridNearOptimisticTxPrepareFuture.java |   3 +-
 .../near/GridNearTransactionalCache.java|   3 -
 .../near/GridNearTxFastFinishFuture.java|  82 +++
 .../near/GridNearTxFinishFuture.java|  23 +-
 .../cache/distributed/near/GridNearTxLocal.java | 303 ++---
 .../distributed/near/NearTxFinishFuture.java|  31 +
 .../cache/transactions/IgniteInternalTx.java|   2 +-
 .../cache/transactions/IgniteTxAdapter.java |  13 +-
 .../cache/transactions/IgniteTxHandler.java |  26 +-
 .../transactions/IgniteTxLocalAdapter.java  |  10 +-
 .../cache/transactions/IgniteTxLocalEx.java |   7 +-
 .../cache/transactions/IgniteTxManager.java |  80 +--
 .../timeout/GridTimeoutProcessor.java   |  23 +-
 .../processors/cache/CacheTxFastFinishTest.java |   9 +-
 .../cache/IgniteTxConfigCacheSelfTest.java  |  14 +
 .../IgniteCacheThreadLocalTxTest.java   | 223 +++
 .../IgniteOptimisticTxSuspendResumeTest.java|   6 +-
 ...ionedMultiNodeLongTxTimeout2FullApiTest.java |  34 +
 .../TxRollbackOnTimeoutNearCacheTest.java   |  28 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |  47 ++
 .../transactions/TxRollbackOnTimeoutTest.java   | 655 +++
 .../IgniteCacheFullApiSelfTestSuite.java|   2 +
 .../testsuites/IgniteCacheTestSuite6.java   |  10 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java|   4 +-
 35 files changed, 1627 insertions(+), 258 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 378dc74..ed8d35e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -75,7 +75,7 @@ public class IgniteDiagnosticPrepareContext {
  * @param keys Entry keys.
  * @param msg Initial message.
  */
-public void  txKeyInfo(UUID nodeId, int cacheId, 
Collection keys, String msg) {
+public void txKeyInfo(UUID nodeId, int cacheId, Collection 
keys, String msg) {
 closure(nodeId).add(msg, new TxEntriesInfoClosure(cacheId, keys));
 }
 
@@ -280,4 +280,4 @@ public class IgniteDiagnosticPrepareContext {
 }
 }
 }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d03a6f8..413b60d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -328,7 +328,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxDhtThreadMapSize() {
-return cctx.isNear() && dhtCtx != null ? dhtCtx.tm().threadMapSize() : 
-1;
+return cctx.tm().threadMapSize();
 }
 
 /** {@inheritDoc} */


[1/2] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/master 27295f238 -> 5af30cf11


http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/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 9a8280f..77634bd 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
@@ -291,7 +291,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 public void rollbackTransactionsForCache(int cacheId) {
 rollbackTransactionsForCache(cacheId, nearIdMap);
 
-rollbackTransactionsForCache(cacheId, threadMap);
+rollbackTransactionsForCache(cacheId, idMap);
 }
 
 /**
@@ -304,7 +304,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 
 for (IgniteTxEntry entry : tx.allEntries()) {
 if (entry.cacheId() == cacheId) {
-rollbackTx(tx);
+rollbackTx(tx, false);
 
 break;
 }
@@ -316,8 +316,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 @Override public void onDisconnected(IgniteFuture reconnectFut) {
 txFinishSync.onDisconnected(reconnectFut);
 
-for (Map.Entry e : threadMap.entrySet())
-rollbackTx(e.getValue());
+for (IgniteInternalTx tx : idMap.values())
+rollbackTx(tx, true);
+for (IgniteInternalTx tx : nearIdMap.values())
+rollbackTx(tx, true);
 
 IgniteClientDisconnectedException err =
 new IgniteClientDisconnectedException(reconnectFut, "Client node 
disconnected.");
@@ -378,6 +380,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 X.println(">>> Transaction manager memory stats [igniteInstanceName=" 
+ cctx.igniteInstanceName() + ']');
 X.println(">>>   threadMapSize: " + threadMap.size());
 X.println(">>>   idMap [size=" + idMap.size() + ']');
+X.println(">>>   nearIdMap [size=" + nearIdMap.size() + ']');
 X.println(">>>   completedVersSortedSize: " + 
completedVersSorted.size());
 X.println(">>>   completedVersHashMapSize: " + 
completedVersHashMap.sizex());
 }
@@ -490,14 +493,15 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 IgniteInternalTx t;
 
 if ((t = txIdMap.putIfAbsent(tx.xidVersion(), tx)) == null) {
-// Add both, explicit and implicit transactions.
-// Do not add remote and dht local transactions as remote node may 
have the same thread ID
-// and overwrite local transaction.
 if (tx.local() && !tx.dht()) {
-if (cacheCtx == null || !cacheCtx.systemTx())
-threadMap.put(tx.threadId(), tx);
-else
-sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+assert tx instanceof GridNearTxLocal : tx;
+
+if (!tx.implicit()) {
+if (cacheCtx == null || !cacheCtx.systemTx())
+threadMap.put(tx.threadId(), tx);
+else
+sysThreadMap.put(new TxThreadKey(tx.threadId(), 
cacheCtx.cacheId()), tx);
+}
 }
 
 // Handle mapped versions.
@@ -633,11 +637,10 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 /**
  * @return Local transaction.
  */
-@SuppressWarnings({"unchecked"})
-@Nullable public  T localTx() {
-IgniteInternalTx tx = tx();
+@Nullable public IgniteTxLocalAdapter localTx() {
+IgniteTxLocalAdapter tx = tx();
 
-return tx != null && tx.local() ? (T)tx : null;
+return tx != null && tx.local() ? tx : null;
 }
 
 /**
@@ -719,15 +722,6 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 }
 
 /**
- * @return Local transaction.
- */
-@Nullable public IgniteInternalTx localTxx() {
-IgniteInternalTx tx = tx();
-
-return tx != null && tx.local() ? tx : null;
-}
-
-/**
  * @return User transaction for current thread.
  */
 @Nullable public GridNearTxLocal userTx() {
@@ -1215,32 +1209,32 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
 collectPendingVersions(dhtTxLoc);
 }
 
-// 4. Unlock write resources.
+// 3. Unlock write resources.
   

[2/2] ignite git commit: ignite-6181 Tx rollback on timeout

2017-09-22 Thread sboikov
ignite-6181 Tx rollback on timeout


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

Branch: refs/heads/master
Commit: 5af30cf118aeb3910398e6b15dbe2a51b62746d7
Parents: 27295f2
Author: sboikov 
Authored: Fri Sep 22 11:20:16 2017 +0300
Committer: sboikov 
Committed: Fri Sep 22 11:20:16 2017 +0300

--
 .../IgniteDiagnosticPrepareContext.java |   4 +-
 .../processors/cache/CacheMetricsImpl.java  |   2 +-
 .../processors/cache/GridCacheAdapter.java  |  18 +-
 .../processors/cache/GridCacheMapEntry.java |   9 +-
 .../processors/cache/GridCacheMvccManager.java  |   5 +-
 .../GridDistributedTxRemoteAdapter.java |   2 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   6 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  79 ++-
 .../distributed/near/GridNearLockFuture.java| 116 ++--
 .../near/GridNearOptimisticTxPrepareFuture.java |   3 +-
 .../near/GridNearTransactionalCache.java|   3 -
 .../near/GridNearTxFastFinishFuture.java|  82 +++
 .../near/GridNearTxFinishFuture.java|  23 +-
 .../cache/distributed/near/GridNearTxLocal.java | 303 ++---
 .../distributed/near/NearTxFinishFuture.java|  31 +
 .../cache/transactions/IgniteInternalTx.java|   2 +-
 .../cache/transactions/IgniteTxAdapter.java |  13 +-
 .../cache/transactions/IgniteTxHandler.java |  26 +-
 .../transactions/IgniteTxLocalAdapter.java  |  10 +-
 .../cache/transactions/IgniteTxLocalEx.java |   7 +-
 .../cache/transactions/IgniteTxManager.java |  80 +--
 .../timeout/GridTimeoutProcessor.java   |  23 +-
 .../processors/cache/CacheTxFastFinishTest.java |   9 +-
 .../cache/IgniteTxConfigCacheSelfTest.java  |  14 +
 .../IgniteCacheThreadLocalTxTest.java   | 223 +++
 .../IgniteOptimisticTxSuspendResumeTest.java|   6 +-
 ...ionedMultiNodeLongTxTimeout2FullApiTest.java |  34 +
 .../TxRollbackOnTimeoutNearCacheTest.java   |  28 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |  47 ++
 .../transactions/TxRollbackOnTimeoutTest.java   | 655 +++
 .../IgniteCacheFullApiSelfTestSuite.java|   2 +
 .../testsuites/IgniteCacheTestSuite6.java   |  10 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java|   4 +-
 35 files changed, 1627 insertions(+), 258 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 378dc74..ed8d35e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -75,7 +75,7 @@ public class IgniteDiagnosticPrepareContext {
  * @param keys Entry keys.
  * @param msg Initial message.
  */
-public void  txKeyInfo(UUID nodeId, int cacheId, 
Collection keys, String msg) {
+public void txKeyInfo(UUID nodeId, int cacheId, Collection 
keys, String msg) {
 closure(nodeId).add(msg, new TxEntriesInfoClosure(cacheId, keys));
 }
 
@@ -280,4 +280,4 @@ public class IgniteDiagnosticPrepareContext {
 }
 }
 }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/5af30cf1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d03a6f8..413b60d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -328,7 +328,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxDhtThreadMapSize() {
-return cctx.isNear() && dhtCtx != null ? dhtCtx.tm().threadMapSize() : 
-1;
+return cctx.tm().threadMapSize();
 }
 
 /** {@inheritDoc} */


[19/19] ignite git commit: ignite-6181

2017-09-22 Thread sboikov
ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 5ca6aff13a59e0050cd5d94b7460aad861266065
Parents: 60c2bb5
Author: sboikov 
Authored: Fri Sep 22 11:03:47 2017 +0300
Committer: sboikov 
Committed: Fri Sep 22 11:17:11 2017 +0300

--
 .../org/apache/ignite/cache/CacheMetrics.java   |   2 -
 .../processors/cache/CacheMetricsImpl.java  |   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   1 +
 .../near/GridNearFastFinishFuture.java  |  82 
 .../distributed/near/GridNearLockFuture.java|   1 +
 .../near/GridNearTxFastFinishFuture.java|  82 
 .../near/GridNearTxFinishFuture.java|   1 +
 .../cache/distributed/near/GridNearTxLocal.java | 127 ++-
 .../cache/transactions/IgniteTxManager.java |   1 +
 .../processors/cache/CacheTxFastFinishTest.java |   9 +-
 10 files changed, 158 insertions(+), 152 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/5ca6aff1/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java 
b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
index 470645b..20ea692 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
@@ -269,7 +269,6 @@ public interface CacheMetrics {
  *
  * @return Thread map size.
  */
-@Deprecated
 public int getTxThreadMapSize();
 
 /**
@@ -319,7 +318,6 @@ public interface CacheMetrics {
  *
  * @return DHT thread map size.
  */
-@Deprecated
 public int getTxDhtThreadMapSize();
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/5ca6aff1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d608435..413b60d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -298,7 +298,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxThreadMapSize() {
-return 0;
+return cctx.tm().threadMapSize();
 }
 
 /** {@inheritDoc} */
@@ -328,7 +328,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxDhtThreadMapSize() {
-return 0;
+return cctx.tm().threadMapSize();
 }
 
 /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/5ca6aff1/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 6c1f9dd..e4f4601 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
@@ -153,6 +153,7 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 private final Map> valMap;
 
 /** */
+@SuppressWarnings("UnusedDeclaration")
 private volatile int done;
 
 /** Trackable flag (here may be non-volatile). */

http://git-wip-us.apache.org/repos/asf/ignite/blob/5ca6aff1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
 

ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 60dba97f3 -> 3fc2679b3


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 3fc2679b325d850bfbd6baf69260d3801a2749a5
Parents: 60dba97
Author: sboikov 
Authored: Thu Sep 21 16:09:10 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 16:09:10 2017 +0300

--
 .../processors/cache/GridCacheMvccManager.java  |  5 +--
 .../near/GridNearFastFinishFuture.java  | 33 +++-
 .../near/GridNearTxFinishFuture.java|  2 +-
 .../cache/distributed/near/GridNearTxLocal.java |  5 ++-
 4 files changed, 26 insertions(+), 19 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/3fc2679b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
index 71df71f..a7d9ce7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
@@ -478,13 +478,14 @@ public class GridCacheMvccManager extends 
GridCacheSharedManagerAdapter {
 /**
  * @param fut Future.
  * @param futId Future ID.
+ * @return {@code True} if added.
  */
-public void addFuture(final GridCacheFuture fut, final IgniteUuid 
futId) {
+public boolean addFuture(final GridCacheFuture fut, final IgniteUuid 
futId) {
 GridCacheFuture old = futs.put(futId, fut);
 
 assert old == null : old;
 
-onFutureAdded(fut);
+return onFutureAdded(fut);
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/3fc2679b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
index 158d85d..abad105 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearFastFinishFuture.java
@@ -55,25 +55,28 @@ public class GridNearFastFinishFuture extends 
GridFutureAdapterhttp://git-wip-us.apache.org/repos/asf/ignite/blob/3fc2679b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index 8732d9f..d13c77f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -287,7 +287,7 @@ public final class GridNearTxFinishFuture extends 
GridCacheCompoundIdentit
  *
  */
 void forceFinish() {
-super.onDone(tx);
+super.onDone(tx, null, false);
 }
 
 /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/3fc2679b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 3106c4a..5e5de80 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3212,9 +3212,12 @@ public class GridNearTxLocal extends 

ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 336157cb3 -> 60dba97f3


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 60dba97f3012f5e3c46825b101df4de623302e35
Parents: 336157c
Author: sboikov 
Authored: Thu Sep 21 15:43:07 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 15:43:07 2017 +0300

--
 .../colocated/GridDhtColocatedLockFuture.java   | 22 ++
 .../distributed/near/GridNearLockFuture.java| 31 ++--
 .../near/GridNearTransactionalCache.java|  3 --
 .../cache/distributed/near/GridNearTxLocal.java |  7 ++---
 .../timeout/GridTimeoutProcessor.java   | 25 ++--
 .../transactions/TxRollbackOnTimeoutTest.java   |  5 +---
 6 files changed, 52 insertions(+), 41 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/60dba97f/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 3f0c874..6c1f9dd 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
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
+import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicReference;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
@@ -100,6 +101,10 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 /** Logger. */
 private static IgniteLogger msgLog;
 
+/** Done field updater. */
+private static final AtomicIntegerFieldUpdater 
DONE_UPD =
+AtomicIntegerFieldUpdater.newUpdater(GridDhtColocatedLockFuture.class, 
"done");
+
 /** Cache registry. */
 @GridToStringExclude
 private final GridCacheContext cctx;
@@ -147,6 +152,9 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 /** Map of current values. */
 private final Map> valMap;
 
+/** */
+private volatile int done;
+
 /** Trackable flag (here may be non-volatile). */
 private boolean trackable;
 
@@ -565,9 +573,13 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
  * @return {@code True} if complete by this operation.
  */
 private boolean onComplete(boolean success, boolean distribute, boolean 
restoreTimeout) {
-if (log.isDebugEnabled())
+if (log.isDebugEnabled()) {
 log.debug("Received onComplete(..) callback [success=" + success + 
", distribute=" + distribute +
 ", fut=" + this + ']');
+}
+
+if (!DONE_UPD.compareAndSet(this, 0, 1))
+return false;
 
 if (!success)
 undoLocks(distribute, true);
@@ -576,10 +588,10 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 cctx.tm().txContext(tx);
 
 if (restoreTimeout && tx.trackTimeout()) {
-// Need restore timeout before onDone is called, but 
onComplete can be called concurrently,
-// thus need ignore duplicated timeout objects.
-if (!tx.addTimeoutHandler(true))
-return false;
+// Need restore timeout before onDone is called and next tx 
operation can proceed.
+boolean add = tx.addTimeoutHandler();
+
+assert add;
 }
 }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/60dba97f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
 

ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 08ad1c403 -> 336157cb3


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 336157cb3e709f9d150bd4d02ec175976d2fbe07
Parents: 08ad1c4
Author: sboikov 
Authored: Thu Sep 21 14:46:40 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 14:46:40 2017 +0300

--
 .../distributed/dht/colocated/GridDhtColocatedLockFuture.java | 7 +--
 .../processors/cache/distributed/near/GridNearLockFuture.java | 4 +++-
 .../processors/cache/distributed/near/GridNearTxLocal.java| 5 +++--
 .../internal/processors/timeout/GridTimeoutProcessor.java | 3 ++-
 4 files changed, 13 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/336157cb/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 5f6ad03..3f0c874 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
@@ -317,6 +317,8 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 else {
 IgniteTxEntry txEntry = tx.entry(txKey);
 
+assert txEntry != null;
+
 txEntry.cached(entry);
 
 // Check transaction entries (corresponding tx entries must be 
enlisted in transaction).
@@ -327,7 +329,7 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 threadId,
 lockVer,
 true,
-tx.entry(txKey).locked(),
+txEntry.locked(),
 inTx(),
 inTx() && tx.implicitSingle(),
 false,
@@ -576,7 +578,8 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 if (restoreTimeout && tx.trackTimeout()) {
 // Need restore timeout before onDone is called, but 
onComplete can be called concurrently,
 // thus need ignore duplicated timeout objects.
-tx.addTimeoutHandler(true);
+if (!tx.addTimeoutHandler(true))
+return false;
 }
 }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/336157cb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index 652e6e3..3a0b012 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -185,6 +185,7 @@ public final class GridNearLockFuture extends 
GridCacheCompoundIdentityFuture cctx,
@@ -710,7 +711,8 @@ public final class GridNearLockFuture extends 
GridCacheCompoundIdentityFuturehttp://git-wip-us.apache.org/repos/asf/ignite/blob/336157cb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index ecbacf9..1052563 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -4100,11 +4100,12 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements 

ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 433dadbde -> 08ad1c403


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 08ad1c40343bef91e36c9383b685bf61a3fb5ab7
Parents: 433dadb
Author: sboikov 
Authored: Thu Sep 21 14:17:22 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 14:35:52 2017 +0300

--
 .../colocated/GridDhtColocatedLockFuture.java   | 11 
 .../distributed/near/GridNearLockFuture.java| 11 
 .../cache/distributed/near/GridNearTxLocal.java | 27 ++--
 .../transactions/TxRollbackOnTimeoutTest.java   |  6 ++---
 4 files changed, 29 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/08ad1c40/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 b3f4c0d..5f6ad03 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
@@ -570,13 +570,14 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 if (!success)
 undoLocks(distribute, true);
 
-if (tx != null)
+if (tx != null) {
 cctx.tm().txContext(tx);
 
-if (restoreTimeout && tx != null && tx.trackTimeout()) {
-// Need restore timeout before onDone is called, but onComplete 
can be called concurrently,
-// thus need ignore duplicated timeout objects.
-tx.addTimeoutHandler(true);
+if (restoreTimeout && tx.trackTimeout()) {
+// Need restore timeout before onDone is called, but 
onComplete can be called concurrently,
+// thus need ignore duplicated timeout objects.
+tx.addTimeoutHandler(true);
+}
 }
 
 if (super.onDone(success, err)) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/08ad1c40/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index c999351..652e6e3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -704,13 +704,14 @@ public final class GridNearLockFuture extends 
GridCacheCompoundIdentityFuturehttp://git-wip-us.apache.org/repos/asf/ignite/blob/08ad1c40/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index f6fa729..ecbacf9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3224,21 +3224,22 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 return rollbackFut;
 }
+else {
+final GridFutureAdapter fut0 = new 
GridFutureAdapter<>();
 
-final GridFutureAdapter fut0 = new 
GridFutureAdapter<>();
-
-fut.listen(new 
IgniteInClosure() {
-@Override public void 
apply(IgniteInternalFuture fut) {
-if (timedOut())
-fut0.onDone(new 
IgniteTxTimeoutCheckedException("Failed 

ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 39588a932 -> 433dadbde


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 433dadbde53cc3c4c3f4fbac60d678d56a23f95c
Parents: 39588a9
Author: sboikov 
Authored: Thu Sep 21 13:34:56 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 13:34:56 2017 +0300

--
 .../processors/cache/transactions/TxRollbackOnTimeoutTest.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/433dadbd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 84cda23..fbb232b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -204,7 +204,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 }
 }
 }
-}, Runtime.getRuntime().availableProcessors(), "tx-thread");
+}, Math.min(4, Runtime.getRuntime().availableProcessors()), 
"tx-thread");
 }
 
 /**



ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 4392aa124 -> 39588a932


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 39588a93254a519bf60f32abaca8db36e217558c
Parents: 4392aa1
Author: sboikov 
Authored: Thu Sep 21 12:00:41 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 12:00:41 2017 +0300

--
 .../apache/ignite/testsuites/IgniteCacheTestSuite.java|  9 -
 .../apache/ignite/testsuites/IgniteCacheTestSuite6.java   | 10 ++
 2 files changed, 10 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/39588a93/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index 1b32e77..e8810bb 100755
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@ -124,7 +124,6 @@ import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheConnec
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheMessageRecoveryIdleConnectionTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheMessageWriteTimeoutTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheSystemTransactionsSelfTest;
-import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheThreadLocalTxTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheTxMessageRecoveryTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCrossCacheTxStoreSelfTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheAtomicNearCacheSelfTest;
@@ -136,9 +135,6 @@ import 
org.apache.ignite.internal.processors.cache.distributed.replicated.GridCa
 import 
org.apache.ignite.internal.processors.cache.local.GridCacheLocalTxExceptionSelfTest;
 import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheEntryProcessorExternalizableFailedTest;
 import 
org.apache.ignite.internal.processors.cache.query.continuous.CacheEntryProcessorNonSerializableTest;
-import 
org.apache.ignite.internal.processors.cache.transactions.TxRollbackOnTimeoutNearCacheTest;
-import 
org.apache.ignite.internal.processors.cache.transactions.TxRollbackOnTimeoutNoDeadlockDetectionTest;
-import 
org.apache.ignite.internal.processors.cache.transactions.TxRollbackOnTimeoutTest;
 import 
org.apache.ignite.internal.processors.datastreamer.DataStreamProcessorSelfTest;
 import 
org.apache.ignite.internal.processors.datastreamer.DataStreamerImplSelfTest;
 import 
org.apache.ignite.internal.processors.datastreamer.DataStreamerMultiThreadedSelfTest;
@@ -321,11 +317,6 @@ public class IgniteCacheTestSuite extends TestSuite {
 
 suite.addTestSuite(GridStoreLoadCacheTest.class);
 
-suite.addTestSuite(TxRollbackOnTimeoutTest.class);
-suite.addTestSuite(TxRollbackOnTimeoutNoDeadlockDetectionTest.class);
-suite.addTestSuite(TxRollbackOnTimeoutNearCacheTest.class);
-suite.addTestSuite(IgniteCacheThreadLocalTxTest.class);
-
 return suite;
 }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/39588a93/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java
index a0fb19b..7c71381 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java
@@ -21,9 +21,14 @@ import junit.framework.TestSuite;
 import 
org.apache.ignite.internal.processors.cache.distributed.CacheExchangeMergeTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.CachePartitionStateTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.GridCachePartitionEvictionDuringReadThroughSelfTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheThreadLocalTxTest;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteOptimisticTxSuspendResumeMultiServerTest;
 

[1/2] ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 f4a30e400 -> 4392aa124


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 9fd12ab231857c079c7a34c7627a9b9e05844d85
Parents: e6f60c9
Author: sboikov 
Authored: Thu Sep 21 11:26:13 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 11:27:53 2017 +0300

--
 .../cache/transactions/IgniteTxHandler.java | 26 +++-
 .../ignite/testsuites/IgniteCacheTestSuite.java |  2 +-
 2 files changed, 15 insertions(+), 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/9fd12ab2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index b60bab5..38c877b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -957,28 +957,30 @@ public class IgniteTxHandler {
 }
 }
 catch (Throwable e) {
-tx.commitError(e);
+U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
 
-tx.systemInvalidate(true);
+if (tx != null) {
+tx.commitError(e);
 
-U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
+tx.systemInvalidate(true);
 
-IgniteInternalFuture res = null;
+try {
+IgniteInternalFuture res = 
tx.rollbackDhtLocalAsync();
 
-try {
-res = tx.rollbackDhtLocalAsync();
+// Only for error logging.
+res.listen(CU.errorLogger(log));
 
-// Only for error logging.
-res.listen(CU.errorLogger(log));
-}
-catch (Throwable e1) {
-e.addSuppressed(e1);
+return res;
+}
+catch (Throwable e1) {
+e.addSuppressed(e1);
+}
 }
 
 if (e instanceof Error)
 throw (Error)e;
 
-return res;
+return new GridFinishedFuture<>(e);
 }
 }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/9fd12ab2/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index 0df600c..1b32e77 100755
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@ -322,8 +322,8 @@ public class IgniteCacheTestSuite extends TestSuite {
 suite.addTestSuite(GridStoreLoadCacheTest.class);
 
 suite.addTestSuite(TxRollbackOnTimeoutTest.class);
-suite.addTestSuite(TxRollbackOnTimeoutNearCacheTest.class);
 suite.addTestSuite(TxRollbackOnTimeoutNoDeadlockDetectionTest.class);
+suite.addTestSuite(TxRollbackOnTimeoutNearCacheTest.class);
 suite.addTestSuite(IgniteCacheThreadLocalTxTest.class);
 
 return suite;



ignite git commit: ignite-6181

2017-09-21 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 e6f60c90b -> f4a30e400


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: f4a30e4007e4979af8f139eb61356a156f743fd2
Parents: e6f60c9
Author: sboikov 
Authored: Thu Sep 21 11:26:13 2017 +0300
Committer: sboikov 
Committed: Thu Sep 21 11:26:13 2017 +0300

--
 .../cache/transactions/IgniteTxHandler.java | 26 +++-
 1 file changed, 14 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/f4a30e40/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index b60bab5..38c877b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -957,28 +957,30 @@ public class IgniteTxHandler {
 }
 }
 catch (Throwable e) {
-tx.commitError(e);
+U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
 
-tx.systemInvalidate(true);
+if (tx != null) {
+tx.commitError(e);
 
-U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
+tx.systemInvalidate(true);
 
-IgniteInternalFuture res = null;
+try {
+IgniteInternalFuture res = 
tx.rollbackDhtLocalAsync();
 
-try {
-res = tx.rollbackDhtLocalAsync();
+// Only for error logging.
+res.listen(CU.errorLogger(log));
 
-// Only for error logging.
-res.listen(CU.errorLogger(log));
-}
-catch (Throwable e1) {
-e.addSuppressed(e1);
+return res;
+}
+catch (Throwable e1) {
+e.addSuppressed(e1);
+}
 }
 
 if (e instanceof Error)
 throw (Error)e;
 
-return res;
+return new GridFinishedFuture<>(e);
 }
 }
 



ignite git commit: ignite-6181

2017-09-20 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 f656ba185 -> c1cd4d3cf


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: c1cd4d3cf0d45468f26a66b595b1bf3537734411
Parents: f656ba1
Author: sboikov 
Authored: Wed Sep 20 16:53:07 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 16:53:07 2017 +0300

--
 .../near/GridNearTxFinishFuture.java|  7 ++
 .../cache/distributed/near/GridNearTxLocal.java | 25 
 2 files changed, 28 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/c1cd4d3c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index b4bc977..8732d9f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -283,6 +283,13 @@ public final class GridNearTxFinishFuture extends 
GridCacheCompoundIdentit
 }
 }
 
+/**
+ *
+ */
+void forceFinish() {
+super.onDone(tx);
+}
+
 /** {@inheritDoc} */
 @Override public boolean onDone(IgniteInternalTx tx0, Throwable err) {
 if (isDone())

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1cd4d3c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 849aeba..f6fa729 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3195,17 +3195,34 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
  * @param commit Commit flag.
  * @return Finish future.
  */
-private IgniteInternalFuture 
chainFinishFuture(NearTxFinishFuture fut, final boolean commit) {
+private IgniteInternalFuture chainFinishFuture(final 
NearTxFinishFuture fut, final boolean commit) {
 assert fut != null;
 
 if (fut.commit() != commit) {
 final GridNearTxLocal tx = this;
 
 if (!commit) {
-if (log.isDebugEnabled())
-log.debug("Failed to rollback transaction, commit already 
started: " + tx);
+final GridNearTxFinishFuture rollbackFut = new 
GridNearTxFinishFuture<>(cctx, this, false);
 
-return fut;
+fut.listen(new 
IgniteInClosure() {
+@Override public void 
apply(IgniteInternalFuture fut0) {
+if (FINISH_FUT_UPD.compareAndSet(tx, fut, 
rollbackFut)) {
+if (tx.state() == COMMITTED) {
+if (log.isDebugEnabled())
+log.debug("Failed to rollback, transaction 
is already committed: " + tx);
+
+rollbackFut.forceFinish();
+}
+else {
+cctx.mvcc().addFuture(rollbackFut, 
rollbackFut.futureId());
+
+rollbackFut.finish(false, true);
+}
+}
+}
+});
+
+return rollbackFut;
 }
 
 final GridFutureAdapter fut0 = new 
GridFutureAdapter<>();



ignite git commit: ignite-6181

2017-09-20 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 c76c973f5 -> f656ba185


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: f656ba1852b0d0cb17fd6bf5fdf4ebfc3045b6c8
Parents: c76c973
Author: sboikov 
Authored: Wed Sep 20 16:23:57 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 16:23:57 2017 +0300

--
 .../internal/processors/cache/GridCacheAdapter.java   | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/f656ba18/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 08d5bff..32b1b99 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -4204,7 +4204,7 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache implements 
IgniteInternalCache implements 
IgniteInternalCache implements 
IgniteInternalCache

[2/2] ignite git commit: ignite-6181

2017-09-20 Thread sboikov
ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: c76c973f597e8800fc8130d2cba6fe1ba9703102
Parents: f881a0a
Author: sboikov 
Authored: Wed Sep 20 16:15:19 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 16:15:19 2017 +0300

--
 .../apache/ignite/internal/processors/cache/GridCacheAdapter.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/c76c973f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 23e3228..08d5bff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -78,6 +78,7 @@ import 
org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgniteTransactionsEx;
 import org.apache.ignite.internal.IgnitionEx;
+import org.apache.ignite.internal.NodeStoppingException;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import 
org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException;
 import org.apache.ignite.internal.cluster.IgniteClusterEx;
@@ -4057,7 +4058,7 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache

[1/2] ignite git commit: ignite-6181

2017-09-20 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 432d5860a -> c76c973f5


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: f881a0a34b6b30b31d86f9f210c6cb1495b59708
Parents: 432d586
Author: sboikov 
Authored: Wed Sep 20 16:14:44 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 16:14:44 2017 +0300

--
 .../apache/ignite/internal/processors/cache/GridCacheAdapter.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/f881a0a3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 05c8cc3..23e3228 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -4071,7 +4071,8 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache

ignite git commit: ignite-6181

2017-09-20 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-2 dcb7511a6 -> 432d5860a


ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 432d5860aa7e061c6a7a2c4736c08bc91b95e8f9
Parents: dcb7511
Author: sboikov 
Authored: Wed Sep 20 15:11:05 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 15:11:05 2017 +0300

--
 .../processors/cache/GridCacheSharedContext.java | 11 +--
 .../distributed/dht/colocated/GridDhtColocatedCache.java |  4 ++--
 .../dht/colocated/GridDhtColocatedLockFuture.java|  2 +-
 .../cache/distributed/near/GridNearLockFuture.java   |  2 +-
 .../near/GridNearOptimisticTxPrepareFutureAdapter.java   |  2 +-
 .../distributed/near/GridNearTransactionalCache.java |  2 +-
 .../cache/distributed/near/GridNearTxLocal.java  |  1 -
 .../processors/cache/transactions/IgniteTxAdapter.java   |  2 +-
 .../processors/cache/transactions/IgniteTxHandler.java   |  4 ++--
 .../cache/transactions/IgniteTxLocalAdapter.java |  2 ++
 .../processors/cache/transactions/IgniteTxLocalEx.java   |  3 +++
 .../IgniteCacheSystemTransactionsSelfTest.java   |  4 ++--
 12 files changed, 21 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/432d5860/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index a6cb8a4..d8614b5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -906,13 +906,12 @@ public class GridCacheSharedContext {
  * @return Not null topology version if current thread holds lock 
preventing topology change.
  */
 @Nullable public AffinityTopologyVersion 
lockedTopologyVersion(IgniteInternalTx ignore) {
-AffinityTopologyVersion topVer = txMgr.lockedTopologyVersion(ignore);
+long threadId = Thread.currentThread().getId();
 
-if (topVer == null) {
-long threadId = Thread.currentThread().getId();
+AffinityTopologyVersion topVer = txMgr.lockedTopologyVersion(threadId, 
ignore);
 
+if (topVer == null)
 topVer = mvccMgr.lastExplicitLockTopologyVersion(threadId);
-}
 
 return topVer;
 }
@@ -947,7 +946,7 @@ public class GridCacheSharedContext {
 if (ctx == null) {
 tx.txState().awaitLastFuture(this);
 
-return tx.commitNearTxLocalAsync(true);
+return tx.commitNearTxLocalAsync();
 }
 else
 return ctx.cache().commitTxAsync(tx);
@@ -961,7 +960,7 @@ public class GridCacheSharedContext {
 public IgniteInternalFuture rollbackTxAsync(GridNearTxLocal tx) throws 
IgniteCheckedException {
 tx.txState().awaitLastFuture(this);
 
-return tx.rollbackNearTxLocalAsync(true);
+return tx.rollbackNearTxLocalAsync();
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/432d5860/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index f98c1d7..8449f3a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -186,7 +186,7 @@ public class GridDhtColocatedCache extends 
GridDhtTransactionalCacheAdapte
 if (keyCheck)
 validateCacheKey(key);
 
-GridNearTxLocal tx = ctx.tm().currentThreadTx(ctx);
+GridNearTxLocal tx = ctx.tm().threadLocalTx(ctx);
 
 final CacheOperationContext opCtx = ctx.operationContextPerCall();
 
@@ -273,7 +273,7 @@ public class GridDhtColocatedCache extends 
GridDhtTransactionalCacheAdapte
 

[4/7] ignite git commit: ignite-6181

2017-09-20 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/56dbdc2f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNearCacheTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNearCacheTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNearCacheTest.java
new file mode 100644
index 000..7c1a6dd
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNearCacheTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.transactions;
+
+/**
+ *
+ */
+public class TxRollbackOnTimeoutNearCacheTest extends TxRollbackOnTimeoutTest {
+/** {@inheritDoc} */
+@Override protected boolean nearCacheEnabled() {
+return true;
+}
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/56dbdc2f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
new file mode 100644
index 000..5123329
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.transactions;
+
+import org.apache.ignite.transactions.TransactionTimeoutException;
+
+import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS;
+
+/**
+ * Tests an ability to eagerly rollback timed out transactions.
+ */
+public class TxRollbackOnTimeoutNoDeadlockDetectionTest extends 
TxRollbackOnTimeoutTest {
+/** {@inheritDoc} */
+@Override protected void beforeTestsStarted() throws Exception {
+System.setProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS, "0");
+
+super.beforeTestsStarted();
+}
+
+/** {@inheritDoc} */
+@Override protected void afterTestsStopped() throws Exception {
+super.afterTestsStopped();
+
+System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
+}
+
+/** */
+@Override protected void validateDeadlockException(Exception e) {
+assertEquals("TimeoutException is expected",
+TransactionTimeoutException.class, e.getCause().getClass());
+}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/56dbdc2f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
new file mode 100644
index 

[2/2] ignite git commit: ignite-6181

2017-09-20 Thread sboikov
ignite-6181


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

Branch: refs/heads/ignite-6181-2
Commit: 685f051cee48c4e875e2ec8fef211da4da251423
Parents: 2299589
Author: sboikov 
Authored: Wed Sep 20 10:58:24 2017 +0300
Committer: sboikov 
Committed: Wed Sep 20 10:59:02 2017 +0300

--
 .../org/apache/ignite/cache/CacheMetrics.java   |   2 +
 .../IgniteDiagnosticPrepareContext.java |   4 +-
 .../processors/cache/CacheMetricsImpl.java  |   4 +-
 .../processors/cache/GridCacheAdapter.java  |  18 +-
 .../processors/cache/GridCacheMapEntry.java |   9 +-
 .../cache/GridCacheSharedContext.java   |  11 +-
 .../dht/colocated/GridDhtColocatedCache.java|   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  58 +-
 .../distributed/near/GridNearLockFuture.java|  58 +-
 .../near/GridNearOptimisticTxPrepareFuture.java |   3 +-
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   2 +-
 .../near/GridNearTransactionalCache.java|   2 +-
 .../cache/distributed/near/GridNearTxLocal.java | 105 +++-
 .../cache/transactions/IgniteInternalTx.java|   2 +-
 .../cache/transactions/IgniteTxAdapter.java |   8 +-
 .../cache/transactions/IgniteTxHandler.java |   4 +-
 .../cache/transactions/IgniteTxManager.java | 232 +++
 .../timeout/GridTimeoutProcessor.java   |  17 +-
 .../cache/IgniteTxConfigCacheSelfTest.java  |  14 +
 .../IgniteCacheSystemTransactionsSelfTest.java  |   4 +-
 .../IgniteCacheThreadLocalTxTest.java   | 225 +++
 .../IgniteOptimisticTxSuspendResumeTest.java|   6 +-
 .../TxRollbackOnTimeoutNearCacheTest.java   |  28 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |  47 ++
 .../transactions/TxRollbackOnTimeoutTest.java   | 626 +++
 .../ignite/testsuites/IgniteCacheTestSuite.java |   9 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java|   4 +-
 27 files changed, 1249 insertions(+), 257 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/685f051c/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java 
b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
index 20ea692..470645b 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
@@ -269,6 +269,7 @@ public interface CacheMetrics {
  *
  * @return Thread map size.
  */
+@Deprecated
 public int getTxThreadMapSize();
 
 /**
@@ -318,6 +319,7 @@ public interface CacheMetrics {
  *
  * @return DHT thread map size.
  */
+@Deprecated
 public int getTxDhtThreadMapSize();
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/685f051c/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 378dc74..ed8d35e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -75,7 +75,7 @@ public class IgniteDiagnosticPrepareContext {
  * @param keys Entry keys.
  * @param msg Initial message.
  */
-public void  txKeyInfo(UUID nodeId, int cacheId, 
Collection keys, String msg) {
+public void txKeyInfo(UUID nodeId, int cacheId, Collection 
keys, String msg) {
 closure(nodeId).add(msg, new TxEntriesInfoClosure(cacheId, keys));
 }
 
@@ -280,4 +280,4 @@ public class IgniteDiagnosticPrepareContext {
 }
 }
 }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/685f051c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d03a6f8..d608435 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 

ignite git commit: ignite-6181-1

2017-09-19 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-6181-1 2468e0090 -> 8e89ff291


ignite-6181-1


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

Branch: refs/heads/ignite-6181-1
Commit: 8e89ff29179651c10c5918c1e8d0928e738ae8ae
Parents: 2468e00
Author: sboikov 
Authored: Tue Sep 19 18:01:38 2017 +0300
Committer: sboikov 
Committed: Tue Sep 19 18:16:29 2017 +0300

--
 .../IgniteCacheThreadLocalTxTest.java   | 64 +---
 .../TxRollbackOnTimeoutNearCacheTest.java   | 28 +++
 .../transactions/TxRollbackOnTimeoutTest.java   | 79 
 .../ignite/testsuites/IgniteCacheTestSuite.java |  2 +
 4 files changed, 149 insertions(+), 24 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/8e89ff29/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
index d62bae2..4b08500 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheThreadLocalTxTest.java
@@ -22,8 +22,13 @@ import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteTransactions;
 import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.util.typedef.G;
 import org.apache.ignite.lang.IgniteFuture;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
@@ -35,26 +40,63 @@ import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
  *
  */
 public class IgniteCacheThreadLocalTxTest extends GridCommonAbstractTest {
+/** */
+private static final TcpDiscoveryIpFinder ipFinder = new 
TcpDiscoveryVmIpFinder(true);
+
+/** */
+private boolean client;
+
+/** {@inheritDoc} */
+@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
+IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
+
+((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+cfg.setClientMode(client);
+
+return cfg;
+}
+
+/** {@inheritDoc} */
+@Override protected void afterTest() throws Exception {
+stopAllGrids();
+
+super.afterTest();
+}
+
 /**
- *
+ * @throws Exception If failed.
  */
-public IgniteCacheThreadLocalTxTest() {
-super(true);
+public void testSingleNode() throws Exception {
+threadLocalTx(startGrid(0));
 }
 
 /**
  * @throws Exception If failed.
  */
+public void testMultiNode() throws Exception {
+startGridsMultiThreaded(4);
+
+client = true;
+
+startGrid(4);
+
+for (Ignite node : G.allGrids())
+threadLocalTx(node);
+}
+
+/**
+ * @param node Node.
+ * @throws Exception If failed.
+ */
 @SuppressWarnings("unchecked")
-public void testThreadLocalTx() throws Exception {
+private void threadLocalTx(Ignite node) throws Exception {
 CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
 
 ccfg.setAtomicityMode(TRANSACTIONAL);
+ccfg.setBackups(2);
 
-Ignite node = grid();
-
-IgniteCache cache = node.createCache(ccfg);
-IgniteTransactions txs = node.transactions();
+IgniteCache cache = node.getOrCreateCache(ccfg);
 
 checkNoTx(node);
 
@@ -73,7 +115,11 @@ public class IgniteCacheThreadLocalTxTest extends 
GridCommonAbstractTest {
 }
 }
 
-assertNull(txs.tx());
+checkNoTx(node);
+
+cache.put(1, 1);
+
+checkNoTx(node);
 }
 
 /**


[49/50] [abbrv] ignite git commit: ignite-6181-1

2017-09-19 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/2468e009/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 2d6264c..caa1545 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -25,7 +25,6 @@ import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.configuration.TransactionConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
@@ -57,9 +56,6 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 private static final long TX_MIN_TIMEOUT = 1;
 
 /** */
-private static final long TX_TIMEOUT = 500;
-
-/** */
 private static final String CACHE_NAME = "test";
 
 /** IP finder. */
@@ -68,12 +64,6 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 /** */
 private static final int GRID_CNT = 3;
 
-/** */
-private final CountDownLatch blocked = new CountDownLatch(1);
-
-/** */
-private final CountDownLatch unblocked = new CountDownLatch(1);
-
 /** {@inheritDoc} */
 @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
 IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
@@ -82,12 +72,8 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
 ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
 
-TransactionConfiguration txCfg = new TransactionConfiguration();
-txCfg.setDefaultTxTimeout(TX_TIMEOUT);
-
-cfg.setTransactionConfiguration(txCfg);
-
 CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
+
 ccfg.setAtomicityMode(TRANSACTIONAL);
 ccfg.setBackups(2);
 
@@ -113,7 +99,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 /**
  * @param e Exception.
  */
-protected void validateException(Exception e) {
+protected void validateDeadlockException(Exception e) {
 assertEquals("Deadlock report is expected",
 TransactionDeadlockException.class, 
e.getCause().getCause().getClass());
 }
@@ -191,50 +177,22 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
  *
  * @throws Exception If failed.
  */
-public void testWaitingTxUnblockedOnTimeout1() throws Exception {
-testWaitingTxUnblockedOnTimeout0(grid(0), grid(0));
-}
+public void testWaitingTxUnblockedOnTimeout() throws Exception {
+waitingTxUnblockedOnTimeout(grid(0), grid(0));
 
-/**
- * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
- *
- * @throws Exception If failed.
- */
-public void testWaitingTxUnblockedOnTimeout2() throws Exception {
-testWaitingTxUnblockedOnTimeout0(grid(0), grid(1));
-}
+waitingTxUnblockedOnTimeout(grid(0), grid(1));
 
-/**
- * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
- *
- * @throws Exception If failed.
- */
-public void testWaitingTxUnblockedOnTimeout3() throws Exception {
 Ignite client = startGrid("client");
 
-testWaitingTxUnblockedOnTimeout0(grid(0), client);
-}
+waitingTxUnblockedOnTimeout(grid(0), client);
 
-/**
- * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
- *
- * @throws Exception If failed.
- */
-public void testWaitingTxUnblockedOnTimeout4() throws Exception {
-Ignite client = startGrid("client");
+waitingTxUnblockedOnTimeout(grid(1), client);
 
-testWaitingTxUnblockedOnTimeout0(client, grid(0));
-}
+waitingTxUnblockedOnTimeout(client, grid(0));
 
-/**
- * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
- *
- * @throws Exception If failed.
- */
-public void testWaitingTxUnblockedOnTimeout5() throws Exception {
-Ignite client = startGrid("client");
+waitingTxUnblockedOnTimeout(client, grid(1));
 
-testWaitingTxUnblockedOnTimeout0(client, client);
+waitingTxUnblockedOnTimeout(client, client);
 }
 
  

[38/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 047ac12ca65c0738fb95c742b5aaac49a1b37f71
Parents: a6faebd
Author: Aleksei Scherbakov 
Authored: Wed Sep 13 19:49:50 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Wed Sep 13 19:49:50 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java|  6 +++---
 .../cache/transactions/IgniteTxLocalAdapter.java   |  2 +-
 .../cache/transactions/IgniteTxManager.java|  8 
 .../transactions/TxRollbackOnTimeoutTest.java  | 17 ++---
 4 files changed, 22 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/047ac12c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index ee5797e..0a59cd0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -230,7 +230,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
-if (this.timeout() > 0 && !implicit() && 
!cctx.tm().deadlockDetectionEnabled())
+if (this.timeout() > 0 && !implicit())
 cctx.time().addTimeoutObject(this);
 
 initResult();
@@ -4014,7 +4014,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
  * Removes timeout handler used for eager rollbacks on timeouts.
  */
 private void removeTimeoutHandler() {
-if (timeout() > 0 && !implicit() && !timedOut() && 
!cctx.tm().deadlockDetectionEnabled())
+if (timeout() > 0 && !implicit() && !timedOut())
 cctx.time().removeTimeoutObject(this);
 }
 
@@ -4025,7 +4025,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 /** {@inheritDoc} */
 @Override public long endTime() {
-return startTime() + timeout();
+return startTime() + timeout() - 50;
 }
 
 /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/047ac12c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 7f30981..e7ebaae 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -1237,7 +1237,7 @@ public abstract class IgniteTxLocalAdapter extends 
IgniteTxAdapter implements Ig
  * @throws IgniteCheckedException If transaction check failed.
  */
 protected void checkValid() throws IgniteCheckedException {
-if (local() && !dht() && remainingTime() == -1 && 
cctx.tm().deadlockDetectionEnabled())
+if (local() && !dht() && remainingTime() == -1)
 state(MARKED_ROLLBACK, true);
 
 if (isRollbackOnly()) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/047ac12c/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 db7a600..fd4f1b2 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
@@ -1422,10 +1422,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
  */
 private 

[32/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 1938338407f68d19dea3255144cfcca01cf16ef7
Parents: 467e0ba
Author: Aleksei Scherbakov 
Authored: Mon Sep 11 13:08:25 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Mon Sep 11 13:08:25 2017 +0300

--
 .../processors/cache/GridCacheAdapter.java  |  5 --
 .../cache/distributed/near/GridNearTxLocal.java | 15 ++--
 .../cache/transactions/IgniteTxManager.java | 75 +++-
 3 files changed, 33 insertions(+), 62 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/19383384/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 8e075b2..fed716c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -102,7 +102,6 @@ import 
org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFi
 import org.apache.ignite.internal.processors.task.GridInternal;
 import 
org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
 import 
org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
-import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
 import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -4031,10 +4030,6 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache((IgniteInternalTx)this);
 }
 
-if (timedOut())
-cctx.tm().markTimedOut(this);
-
 GridNearTxFinishFuture fut = rollbackFut;
 
 if (fut != null)
@@ 

[12/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 7f5d80de8108257e8184b0654fe7034f6c7e2527
Parents: a01837b
Author: Aleksei Scherbakov 
Authored: Mon Aug 28 19:51:09 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Mon Aug 28 19:51:09 2017 +0300

--
 .../transactions/TxTimeoutHandlingTest.java | 147 +++
 1 file changed, 147 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/7f5d80de/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxTimeoutHandlingTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxTimeoutHandlingTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxTimeoutHandlingTest.java
new file mode 100644
index 000..2ac0f1a
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxTimeoutHandlingTest.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.transactions;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.TransactionConfiguration;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
+
+/**
+ * Tests ability to rollback not properly closed transaction.
+ */
+public class TxTimeoutHandlingTest extends GridCommonAbstractTest {
+/** */
+private static final long TX_TIMEOUT = 3_000L;
+
+/** */
+private static final String CACHE_NAME = "test";
+
+/** IP finder. */
+private static final TcpDiscoveryVmIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+
+/** */
+private final CountDownLatch l = new CountDownLatch(1);
+
+/** */
+private final Object mux = new Object();
+
+/** */
+private volatile boolean released;
+
+
+/** {@inheritDoc} */
+@Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
+IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
+
+cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
+
+TransactionConfiguration txCfg = new TransactionConfiguration();
+txCfg.setDefaultTxTimeout(TX_TIMEOUT);
+
+cfg.setTransactionConfiguration(txCfg);
+
+CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
+ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
+
+cfg.setCacheConfiguration(ccfg);
+
+return cfg;
+}
+
+/** */
+public void testTxTimeoutHandling() throws Exception {
+try {
+final Ignite ignite = startGrid(0);
+
+IgniteInternalFuture fut1 = multithreadedAsync(new Runnable() {
+@Override public void run() {
+// Start tx with default settings.
+try (Transaction tx = ignite.transactions().txStart()) {
+  

[22/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: d5f3a67dc258dfb19279481c831377b97955b365
Parents: 94acdf5
Author: Aleksei Scherbakov 
Authored: Thu Aug 31 15:25:00 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Thu Aug 31 15:25:00 2017 +0300

--
 .../cache/transactions/IgniteTxHandler.java |  8 +++---
 .../transactions/TxRollbackOnTimeoutTest.java   | 26 ++--
 2 files changed, 17 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/d5f3a67d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index de0e415..6f96b4b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -673,8 +673,8 @@ public class IgniteTxHandler {
  * @param res Response.
  */
 private void processNearTxFinishResponse(UUID nodeId, 
GridNearTxFinishResponse res) {
-if (txFinishMsgLog.isDebugEnabled())
-txFinishMsgLog.debug("Received near finish response [txId=" + 
res.xid() + ", node=" + nodeId + ']');
+//if (txFinishMsgLog.isDebugEnabled())
+txFinishMsgLog.info("Received near finish response [txId=" + 
res.xid() + ", node=" + nodeId + ']');
 
 ctx.tm().onFinishedRemote(nodeId, res.threadId());
 
@@ -783,8 +783,8 @@ public class IgniteTxHandler {
 UUID nodeId,
 GridNearTxFinishRequest req
 ) {
-if (txFinishMsgLog.isDebugEnabled())
-txFinishMsgLog.debug("Received near finish request [txId=" + 
req.version() + ", node=" + nodeId + ']');
+//if (txFinishMsgLog.isDebugEnabled())
+txFinishMsgLog.info("Received near finish request [txId=" + 
req.version() + ", node=" + nodeId + ']');
 
 IgniteInternalFuture fut = finish(nodeId, null, req);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d5f3a67d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 52f099d..9243f58 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -130,11 +130,11 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
  */
-//public void testWaitingTxUnblockedOnTimeout3() throws Exception {
-//Ignite client = startGrid("client");
-//
-//testWaitingTxUnblockedOnTimeout0(grid(0), client);
-//}
+public void testWaitingTxUnblockedOnTimeout3() throws Exception {
+Ignite client = startGrid("client");
+
+testWaitingTxUnblockedOnTimeout0(grid(0), client);
+}
 
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
@@ -171,11 +171,11 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
  */
-//public void testWaitingTxUnblockedOnTimeout8() throws Exception {
-//Ignite client = startGrid("client");
-//
-//testWaitingTxUnblockedOnThreadDeath0(grid(0), client);
-//}
+public void testWaitingTxUnblockedOnTimeout8() throws Exception {
+Ignite client = startGrid("client");
+
+testWaitingTxUnblockedOnThreadDeath0(grid(0), client);
+}
 
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
@@ -268,11 +268,11 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 }
 }, 2, "Second");
 
-fut2.get(5, 

[27/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 12669b86a0ea2e91ebff778ef9b1661b37ffc781
Parents: 8ab36ce
Author: ascherbakoff 
Authored: Sat Sep 9 16:04:08 2017 +0300
Committer: ascherbakoff 
Committed: Sat Sep 9 16:04:08 2017 +0300

--
 .../IgniteDiagnosticPrepareContext.java |  2 +-
 .../distributed/near/GridNearLockFuture.java|  5 +-
 .../cache/distributed/near/GridNearTxLocal.java | 18 ++---
 .../transactions/IgniteTransactionsImpl.java|  3 +-
 .../cache/transactions/IgniteTxManager.java | 77 
 5 files changed, 38 insertions(+), 67 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/12669b86/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 378dc74..14783d5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -75,7 +75,7 @@ public class IgniteDiagnosticPrepareContext {
  * @param keys Entry keys.
  * @param msg Initial message.
  */
-public void  txKeyInfo(UUID nodeId, int cacheId, 
Collection keys, String msg) {
+public void txKeyInfo(UUID nodeId, int cacheId, Collection 
keys, String msg) {
 closure(nodeId).add(msg, new TxEntriesInfoClosure(cacheId, keys));
 }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/12669b86/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index bb71337..9cad49e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -770,10 +770,7 @@ public final class GridNearLockFuture extends 
GridCacheCompoundIdentityFuturehttp://git-wip-us.apache.org/repos/asf/ignite/blob/12669b86/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 0c76aec..8d15e87 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -220,7 +220,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 plc,
 concurrency,
 isolation,
-timeout == 0 ? 0 : Math.max(100, timeout),
+timeout,
 false,
 storeEnabled,
 false,
@@ -230,7 +230,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
-if (this.timeout > 0)
+if (this.timeout() > 0 && !implicit())
 cctx.time().addTimeoutObject(this);
 
 initResult();
@@ -3151,7 +3151,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 // Prepare was called explicitly.
 return fut;
 
-if (timeout() > 0)
+if (timeout() > 0 && !implicit())
 cctx.time().removeTimeoutObject(this);
 
 mapExplicitLocks();
@@ -3266,7 +3266,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 if (log.isDebugEnabled())
 log.debug("Rolling back near tx: " + this);
 
-if (remainingTime() > 0)
+if (remainingTime() > 0 && !implicit())

[34/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 4c3df8f78b47dcfbed15778a87e173d8bace27b0
Parents: 6ee98d1
Author: Aleksei Scherbakov 
Authored: Tue Sep 12 16:31:32 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Tue Sep 12 16:31:32 2017 +0300

--
 .../org/apache/ignite/IgniteTransactions.java   |  3 +-
 .../configuration/TransactionConfiguration.java |  6 +++
 .../processors/cache/GridCacheProcessor.java|  2 +-
 .../cache/distributed/near/GridNearTxLocal.java |  5 +-
 .../transactions/IgniteTransactionsImpl.java|  3 +-
 .../transactions/IgniteTxLocalAdapter.java  |  3 --
 .../cache/transactions/IgniteTxManager.java | 49 +++-
 .../transactions/TxRollbackOnTimeoutTest.java   | 13 --
 8 files changed, 49 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/4c3df8f7/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
index dfe6a1a..9da862d 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
@@ -77,7 +77,8 @@ public interface IgniteTransactions {
  *
  * @param concurrency Concurrency.
  * @param isolation Isolation.
- * @param timeout Timeout.
+ * @param timeout Timeout. See {@link 
TransactionConfiguration#setDefaultTxTimeout(long)}
+ * for additional info on transaction timeouts.
  * @param txSize Number of entries participating in transaction (may be 
approximate).
  * @return New transaction.
  * @throws IllegalStateException If transaction is already started by this 
thread.

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c3df8f7/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
index 0063afc..cbd2d82 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.ignite.configuration;
 
 import java.io.Serializable;
 import javax.cache.configuration.Factory;
+import org.apache.ignite.IgniteTransactions;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
@@ -181,6 +182,11 @@ public class TransactionConfiguration implements 
Serializable {
 /**
  * Sets default transaction timeout in milliseconds. By default this value 
is defined by {@link
  * #DFLT_TRANSACTION_TIMEOUT}.
+ * 
+ * If transaction's execution is not completed by calling {@link 
Transaction#commit()},
+ * {@link Transaction#rollback()} or {@link Transaction#close()}
+ * before timeout expires, it will be rolled back asynchronously. All 
further caches operations will fail until new
+ * explicit transaction is started in current thread by calling {@link 
IgniteTransactions#txStart()}.
  *
  * @param dfltTxTimeout Default transaction timeout.
  * @return {@code this} for chaining.

http://git-wip-us.apache.org/repos/asf/ignite/blob/4c3df8f7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 1efb500..bd950fa 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -3654,7 +3654,7 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
  * @throws IgniteException If transaction exist.
  */
 private void checkEmptyTransactions() throws IgniteException {
-if (transactions().tx() != null)
+ 

[42/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 7d05fb101fd19ddd89a2356d79f35deea3fcf4f0
Parents: 6353158
Author: Aleksei Scherbakov 
Authored: Fri Sep 15 11:49:18 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 15 11:49:18 2017 +0300

--
 .../cache/distributed/IgniteOptimisticTxSuspendResumeTest.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/7d05fb10/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
index d16aebd..deb58bc 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
@@ -438,7 +438,7 @@ public class IgniteOptimisticTxSuspendResumeTest extends 
GridCommonAbstractTest
 }
 }, TransactionTimeoutException.class);
 
-assertEquals(MARKED_ROLLBACK, tx.state());
+assertEquals(ROLLED_BACK, tx.state());
 
 tx.close();
 }
@@ -469,7 +469,7 @@ public class IgniteOptimisticTxSuspendResumeTest extends 
GridCommonAbstractTest
 }
 }, TransactionTimeoutException.class);
 
-assertEquals(MARKED_ROLLBACK, tx.state());
+assertEquals(ROLLED_BACK, tx.state());
 
 tx.close();
 



[41/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 635315892b995dbe59462a55914c26735125e1da
Parents: ab4316a
Author: Aleksei Scherbakov 
Authored: Thu Sep 14 18:38:42 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Thu Sep 14 18:38:42 2017 +0300

--
 .../internal/processors/cache/transactions/IgniteTxManager.java| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/63531589/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 fd4f1b2..827f2f6 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
@@ -1422,7 +1422,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
  */
 private void clearThreadMap(IgniteInternalTx tx) {
 if (tx.local() && !tx.dht()) {
-if (!tx.system()) {
+if (tx.system()) {
 Integer cacheId = tx.txState().firstCacheId();
 
 if (cacheId != null)



[20/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: d6f0b261bb120d719a0af865f10df55c351eabb5
Parents: 9da2dde
Author: Aleksei Scherbakov 
Authored: Wed Aug 30 19:47:11 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Wed Aug 30 19:47:11 2017 +0300

--
 .../apache/ignite/IgniteSystemProperties.java   |  6 +++
 .../cache/distributed/near/GridNearTxLocal.java | 15 ++-
 .../transactions/TxRollbackOnTimeoutTest.java   | 43 ++--
 3 files changed, 50 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/d6f0b261/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index d3cba2b..c22d552 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -706,6 +706,12 @@ public final class IgniteSystemProperties {
 public static final String IGNITE_ENABLE_FORCIBLE_NODE_KILL = 
"IGNITE_ENABLE_FORCIBLE_NODE_KILL";
 
 /**
+ * If this property is set, a node will track transaction initiators, 
printing them in tx timeout error.
+ * Useful for debugging.
+ */
+public static final String IGNITE_TRACK_TRANSACTION_INITIATOR = 
"IGNITE_TRACK_TRANSACTION_INITIATOR";
+
+/**
  * Enforces singleton.
  */
 private IgniteSystemProperties() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/d6f0b261/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index ebae49f..84c9790 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -34,6 +34,7 @@ import javax.cache.CacheException;
 import javax.cache.expiry.ExpiryPolicy;
 import javax.cache.processor.EntryProcessor;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.NodeStoppingException;
@@ -114,11 +115,17 @@ import static 
org.apache.ignite.transactions.TransactionState.ROLLED_BACK;
 import static org.apache.ignite.transactions.TransactionState.ROLLING_BACK;
 import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
 
+import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_TRACK_TRANSACTION_INITIATOR;
+
 /**
  * Replicated user transaction.
  */
 @SuppressWarnings("unchecked")
 public class GridNearTxLocal extends GridDhtTxLocalAdapter implements 
GridTimeoutObject, AutoCloseable {
+/** {@link IgniteSystemProperties#IGNITE_TRACK_TRANSACTION_INITIATOR} */
+private static final boolean TRACK_TRANSACTION_INITIATOR =
+IgniteSystemProperties.getBoolean(IGNITE_TRACK_TRANSACTION_INITIATOR, 
false);
+
 /** */
 private static final long serialVersionUID = 0L;
 
@@ -177,6 +184,9 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 /** */
 private long endTime;
 
+/** */
+private transient Exception trackE;
+
 /**
  * Empty constructor required for {@link Externalizable}.
  */
@@ -233,6 +243,9 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
 if (this.timeout > 0) {
+if (TRACK_TRANSACTION_INITIATOR)
+trackE = new Exception();
+
 endTime = U.currentTimeMillis() + this.timeout;
 
 cctx.time().addTimeoutObject(this);
@@ -4072,7 +4085,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 /** {@inheritDoc} */
 @Override public void onTimeout() {
-log.error("Transaction is timed out and will be rolled back: [tx=" + 

[45/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: eebaa6bd064705516a85a8dc90a4f252e652390e
Parents: 1310008
Author: Aleksei Scherbakov 
Authored: Fri Sep 15 13:30:45 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 15 13:30:45 2017 +0300

--
 ...niteTxConfigCacheForceTxTimeoutSelfTest.java | 39 
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java | 47 
 .../transactions/TxRollbackOnTimeoutTest.java   | 24 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |  4 +-
 4 files changed, 72 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/eebaa6bd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
deleted file mode 100644
index 4420a4e..000
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS;
-
-/**
- * Test checks that grid transaction configuration doesn't influence system 
caches.
- */
-public class IgniteTxConfigCacheForceTxTimeoutSelfTest extends 
IgniteTxConfigCacheSelfTest {
-/** {@inheritDoc} */
-@Override protected void beforeTestsStarted() throws Exception {
-System.setProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS, "0");
-
-super.beforeTestsStarted();
-}
-
-/** {@inheritDoc} */
-@Override protected void afterTestsStopped() throws Exception {
-super.afterTestsStopped();
-
-System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
-}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/eebaa6bd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
new file mode 100644
index 000..77c383e
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutNoDeadlockDetectionTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package 

[50/50] [abbrv] ignite git commit: ignite-6181-1

2017-09-19 Thread sboikov
ignite-6181-1


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

Branch: refs/heads/ignite-6181-1
Commit: 2468e009032d36404f372d1f3bd616d9320efae4
Parents: f950cb1
Author: sboikov 
Authored: Tue Sep 19 16:45:29 2017 +0300
Committer: sboikov 
Committed: Tue Sep 19 17:37:31 2017 +0300

--
 .../org/apache/ignite/cache/CacheMetrics.java   |   2 +
 .../processors/cache/CacheMetricsImpl.java  |   4 +-
 .../processors/cache/GridCacheAdapter.java  |  18 +-
 .../processors/cache/GridCacheMapEntry.java |   9 +-
 .../cache/GridCacheSharedContext.java   |  11 +-
 .../dht/colocated/GridDhtColocatedCache.java|   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  90 ---
 .../distributed/near/GridNearLockFuture.java|  58 +++--
 ...ridNearOptimisticTxPrepareFutureAdapter.java |   2 +-
 .../near/GridNearTransactionalCache.java|   2 +-
 .../cache/distributed/near/GridNearTxLocal.java |  71 --
 .../cache/transactions/IgniteTxAdapter.java |   4 +-
 .../cache/transactions/IgniteTxHandler.java |   4 +-
 .../cache/transactions/IgniteTxManager.java | 230 ++
 .../timeout/GridTimeoutProcessor.java   |  17 +-
 .../IgniteCacheThreadLocalTxTest.java   | 179 ++
 .../IgniteOptimisticTxSuspendResumeTest.java|   1 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |   4 +-
 .../transactions/TxRollbackOnTimeoutTest.java   | 238 ---
 .../ignite/testsuites/IgniteCacheTestSuite.java |   4 +-
 20 files changed, 550 insertions(+), 402 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/2468e009/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java 
b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
index 20ea692..470645b 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetrics.java
@@ -269,6 +269,7 @@ public interface CacheMetrics {
  *
  * @return Thread map size.
  */
+@Deprecated
 public int getTxThreadMapSize();
 
 /**
@@ -318,6 +319,7 @@ public interface CacheMetrics {
  *
  * @return DHT thread map size.
  */
+@Deprecated
 public int getTxDhtThreadMapSize();
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/2468e009/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index d03a6f8..d608435 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -298,7 +298,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxThreadMapSize() {
-return cctx.tm().threadMapSize();
+return 0;
 }
 
 /** {@inheritDoc} */
@@ -328,7 +328,7 @@ public class CacheMetricsImpl implements CacheMetrics {
 
 /** {@inheritDoc} */
 @Override public int getTxDhtThreadMapSize() {
-return cctx.isNear() && dhtCtx != null ? dhtCtx.tm().threadMapSize() : 
-1;
+return 0;
 }
 
 /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/2468e009/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index fed716c..ebd2ab8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1857,7 +1857,7 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache(e);
 }
 
-tx = ctx.tm().threadLocalTx(ctx.systemTx() ? ctx : null);
+tx = ctx.tm().currentThreadTx(ctx);
   

[44/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 13100084823678d304c4ab392cb6283e876c8f49
Parents: 933b1d7
Author: Aleksei Scherbakov 
Authored: Fri Sep 15 12:30:51 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 15 12:30:51 2017 +0300

--
 .../cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/13100084/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
index cb1ab57..4420a4e 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
@@ -36,4 +36,4 @@ public class IgniteTxConfigCacheForceTxTimeoutSelfTest 
extends IgniteTxConfigCac
 
 System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
 }
-}
+}
\ No newline at end of file



[29/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 02f94ae941d2985afec1cf8eb26f96048a207707
Parents: 3097d8d
Author: ascherbakoff 
Authored: Sun Sep 10 13:12:47 2017 +0300
Committer: ascherbakoff 
Committed: Sun Sep 10 13:12:47 2017 +0300

--
 .../transactions/TxRollbackOnTimeoutTest.java   | 60 +---
 1 file changed, 52 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/02f94ae9/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 3d25d10..cdbceda 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -18,17 +18,18 @@
 package org.apache.ignite.internal.processors.cache.transactions;
 
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.locks.LockSupport;
 import javax.cache.CacheException;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.TransactionConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
-import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 import org.apache.ignite.internal.util.GridConcurrentSkipListSet;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -36,6 +37,8 @@ import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
 import org.apache.ignite.transactions.TransactionTimeoutException;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
@@ -47,7 +50,10 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  */
 public class TxRollbackOnTimeoutTest extends GridCommonAbstractTest {
 /** */
-private static final long TX_TIMEOUT = 3_000L;
+private static final long TX_TIMEOUT_MIN = 1;
+
+/** */
+private static final long TX_TIMEOUT = 300;
 
 /** */
 private static final String CACHE_NAME = "test";
@@ -217,24 +223,62 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 testTimeoutRemoval0(client, i, TX_TIMEOUT);
 
 for (int i = 0; i < 5; i++)
-testTimeoutRemoval0(grid(0), i, 1);
+testTimeoutRemoval0(grid(0), i, TX_TIMEOUT_MIN);
 
 for (int i = 0; i < 5; i++)
-testTimeoutRemoval0(client, i, 1);
+testTimeoutRemoval0(client, i, TX_TIMEOUT_MIN);
 
 // Repeat with more iterations to make sure everything is cleared.
 for (int i = 0; i < 500; i++)
-testTimeoutRemoval0(client, 2, 1);
+testTimeoutRemoval0(client, 2, TX_TIMEOUT_MIN);
+}
+
+/**
+ * Tests timeouts in all tx configurations.
+ *
+ * @throws Exception If failed.
+ */
+public void testSimple() throws Exception {
+for (TransactionConcurrency concurrency : 
TransactionConcurrency.values())
+for (TransactionIsolation isolation : 
TransactionIsolation.values())
+testSimple0(concurrency, isolation);
+}
+
+/**
+ * @param concurrency Concurrency.
+ * @param isolation Isolation.
+ *
+ * @throws Exception If failed.
+ */
+private void testSimple0(TransactionConcurrency concurrency, 
TransactionIsolation isolation) throws Exception {
+Ignite near = grid(0);
+
+final int key = 1, val = 

[30/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: ec4b16cc51a623c9f8106b7b3d3359881a46f4ae
Parents: 02f94ae
Author: ascherbakoff 
Authored: Sun Sep 10 14:17:19 2017 +0300
Committer: ascherbakoff 
Committed: Sun Sep 10 14:17:19 2017 +0300

--
 .../internal/IgniteDiagnosticPrepareContext.java |  2 +-
 .../internal/processors/cache/GridCacheAdapter.java  |  2 +-
 .../cache/distributed/near/GridNearLockFuture.java   |  5 -
 .../cache/distributed/near/GridNearTxLocal.java  |  6 ++
 .../cache/transactions/IgniteTransactionsImpl.java   |  1 -
 .../cache/transactions/IgniteTxLocalAdapter.java |  4 
 .../cache/transactions/IgniteTxManager.java  | 10 --
 .../cache/transactions/TxRollbackOnTimeoutTest.java  | 15 ---
 8 files changed, 24 insertions(+), 21 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/ec4b16cc/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
index 14783d5..ed8d35e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteDiagnosticPrepareContext.java
@@ -280,4 +280,4 @@ public class IgniteDiagnosticPrepareContext {
 }
 }
 }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/ec4b16cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 2be738a..18fb2ff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -4035,7 +4035,7 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache

[24/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: b770c0a1d6b2853c8b629a5ac08ecfbc00486d35
Parents: 6a92846
Author: ascherbakoff 
Authored: Tue Sep 5 16:50:42 2017 +0300
Committer: ascherbakoff 
Committed: Tue Sep 5 16:50:42 2017 +0300

--
 .../apache/ignite/IgniteSystemProperties.java   |  6 -
 .../cache/distributed/near/GridNearTxLocal.java | 24 +---
 .../cache/transactions/IgniteTxHandler.java |  8 +++
 .../transactions/IgniteTxLocalAdapter.java  |  1 -
 .../cache/transactions/IgniteTxManager.java | 11 +++--
 .../transactions/TxRollbackOnTimeoutTest.java   | 14 
 .../ignite/testsuites/IgniteCacheTestSuite.java |  3 +++
 7 files changed, 16 insertions(+), 51 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index c22d552..d3cba2b 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -706,12 +706,6 @@ public final class IgniteSystemProperties {
 public static final String IGNITE_ENABLE_FORCIBLE_NODE_KILL = 
"IGNITE_ENABLE_FORCIBLE_NODE_KILL";
 
 /**
- * If this property is set, a node will track transaction initiators, 
printing them in tx timeout error.
- * Useful for debugging.
- */
-public static final String IGNITE_TRACK_TRANSACTION_INITIATOR = 
"IGNITE_TRACK_TRANSACTION_INITIATOR";
-
-/**
  * Enforces singleton.
  */
 private IgniteSystemProperties() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index f5ecdd8..965a502 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -34,7 +34,6 @@ import javax.cache.CacheException;
 import javax.cache.expiry.ExpiryPolicy;
 import javax.cache.processor.EntryProcessor;
 import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.NodeStoppingException;
@@ -116,17 +115,11 @@ import static 
org.apache.ignite.transactions.TransactionState.ROLLED_BACK;
 import static org.apache.ignite.transactions.TransactionState.ROLLING_BACK;
 import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
 
-import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_TRACK_TRANSACTION_INITIATOR;
-
 /**
  * Replicated user transaction.
  */
 @SuppressWarnings("unchecked")
 public class GridNearTxLocal extends GridDhtTxLocalAdapter implements 
GridTimeoutObject, AutoCloseable {
-/** {@link IgniteSystemProperties#IGNITE_TRACK_TRANSACTION_INITIATOR} */
-private static final boolean TRACK_TRANSACTION_INITIATOR =
-IgniteSystemProperties.getBoolean(IGNITE_TRACK_TRANSACTION_INITIATOR, 
false);
-
 /** */
 private static final long serialVersionUID = 0L;
 
@@ -182,9 +175,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 @GridToStringExclude
 private TransactionProxyImpl proxy;
 
-/** */
-private transient Exception trackE;
-
 /**
  * Empty constructor required for {@link Externalizable}.
  */
@@ -240,12 +230,8 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
-if (this.timeout > 0) {
-if (TRACK_TRANSACTION_INITIATOR)
-trackE = new Exception();
-
+if (this.timeout > 0)
 cctx.time().addTimeoutObject(this);
-}
 
 

[36/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: b01771355b697b9bd4b23ce6c807d777510b87c0
Parents: 225d4f5
Author: ascherbakoff 
Authored: Tue Sep 12 23:03:30 2017 +0300
Committer: ascherbakoff 
Committed: Tue Sep 12 23:03:30 2017 +0300

--
 .../org/apache/ignite/IgniteTransactions.java   |  3 +-
 .../configuration/TransactionConfiguration.java |  6 ---
 .../near/GridNearOptimisticTxPrepareFuture.java |  3 +-
 .../cache/distributed/near/GridNearTxLocal.java |  3 +-
 .../transactions/IgniteTransactionsImpl.java|  2 +-
 .../cache/transactions/IgniteTxManager.java |  7 +--
 ...niteTxConfigCacheForceTxTimeoutSelfTest.java | 43 +++
 .../cache/IgniteTxConfigCacheSelfTest.java  |  2 +-
 .../transactions/TxRollbackOnTimeoutTest.java   | 55 +++-
 .../ignite/testsuites/IgniteCacheTestSuite.java |  2 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java|  2 +-
 11 files changed, 110 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/b0177135/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
index 9da862d..dfe6a1a 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteTransactions.java
@@ -77,8 +77,7 @@ public interface IgniteTransactions {
  *
  * @param concurrency Concurrency.
  * @param isolation Isolation.
- * @param timeout Timeout. See {@link 
TransactionConfiguration#setDefaultTxTimeout(long)}
- * for additional info on transaction timeouts.
+ * @param timeout Timeout.
  * @param txSize Number of entries participating in transaction (may be 
approximate).
  * @return New transaction.
  * @throws IllegalStateException If transaction is already started by this 
thread.

http://git-wip-us.apache.org/repos/asf/ignite/blob/b0177135/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
index cbd2d82..0063afc 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
@@ -19,7 +19,6 @@ package org.apache.ignite.configuration;
 
 import java.io.Serializable;
 import javax.cache.configuration.Factory;
-import org.apache.ignite.IgniteTransactions;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
@@ -182,11 +181,6 @@ public class TransactionConfiguration implements 
Serializable {
 /**
  * Sets default transaction timeout in milliseconds. By default this value 
is defined by {@link
  * #DFLT_TRANSACTION_TIMEOUT}.
- * 
- * If transaction's execution is not completed by calling {@link 
Transaction#commit()},
- * {@link Transaction#rollback()} or {@link Transaction#close()}
- * before timeout expires, it will be rolled back asynchronously. All 
further caches operations will fail until new
- * explicit transaction is started in current thread by calling {@link 
IgniteTransactions#txStart()}.
  *
  * @param dfltTxTimeout Default transaction timeout.
  * @return {@code this} for chaining.

http://git-wip-us.apache.org/repos/asf/ignite/blob/b0177135/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 2c23a7a..822651c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ 

[33/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 6ee98d1d6ef36933ea94ecd568fb88c6ff62fadf
Parents: 1938338
Author: Aleksei Scherbakov 
Authored: Mon Sep 11 20:09:39 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Mon Sep 11 20:09:39 2017 +0300

--
 .../ignite/internal/processors/cache/GridCacheProcessor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/6ee98d1d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index bd950fa..1efb500 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -3654,7 +3654,7 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
  * @throws IgniteException If transaction exist.
  */
 private void checkEmptyTransactions() throws IgniteException {
-if (transactions().tx() != null || 
sharedCtx.lockedTopologyVersion(null) != null)
+if (transactions().tx() != null)
 throw new IgniteException("Cannot start/stop cache within lock or 
transaction.");
 }
 



[31/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 467e0bad7d25a9720738ce77f7afb5fd587727f5
Parents: ec4b16c
Author: ascherbakoff 
Authored: Sun Sep 10 17:18:20 2017 +0300
Committer: ascherbakoff 
Committed: Sun Sep 10 17:18:20 2017 +0300

--
 .../processors/cache/GridCacheAdapter.java  |   9 +-
 .../cache/distributed/near/GridNearTxLocal.java | 107 +++
 .../cache/transactions/IgniteTxManager.java |  99 +++--
 .../cache/IgniteTxConfigCacheSelfTest.java  |   2 +
 4 files changed, 132 insertions(+), 85 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/467e0bad/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 18fb2ff..8e075b2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -139,7 +139,6 @@ import 
org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
-import org.apache.ignite.transactions.TransactionState;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.LongAdder8;
 
@@ -4032,11 +4031,11 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCacheputAllAsync0(cacheCtx,
-null,
-map,
-null,
-null,
-drMap,
-false);
+null,
+map,
+null,
+null,
+drMap,
+false);
 }
 
 /**
@@ -2486,8 +2486,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 processLoaded(map, keys, needVer, c);
 
 return null;
-}
-catch (Exception e) {
+} catch (Exception e) {
 setRollbackOnly();
 

[35/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 225d4f52a777ac14d4a941f7eb9de505947962ff
Parents: 4c3df8f
Author: Aleksei Scherbakov 
Authored: Tue Sep 12 20:11:32 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Tue Sep 12 20:11:32 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java |  6 --
 .../cache/transactions/IgniteTxLocalAdapter.java|  3 +++
 .../cache/transactions/TxRollbackOnTimeoutTest.java | 16 
 3 files changed, 23 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/225d4f52/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index aa0c85b..2308d71 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -230,7 +230,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
-if (this.timeout() > 0 && !implicit())
+if (this.timeout() > 0 && !implicit() && 
!cctx.tm().deadlockDetectionEnabled())
 cctx.time().addTimeoutObject(this);
 
 initResult();
@@ -4014,7 +4014,7 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
  * Removes timeout handler used for eager rollbacks on timeouts.
  */
 private void removeTimeoutHandler() {
-if (timeout() > 0 && !implicit() && !timedOut())
+if (timeout() > 0 && !implicit() && !timedOut() && 
!cctx.tm().deadlockDetectionEnabled())
 cctx.time().removeTimeoutObject(this);
 }
 
@@ -4033,6 +4033,8 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 if (state(MARKED_ROLLBACK, true)) {
 cctx.kernalContext().closure().runLocalSafe(new Runnable() {
 @Override public void run() {
+log().error("Transaction is timed out and will be rolled 
back: " + GridNearTxLocal.this);
+
 rollbackNearTxLocalAsync();
 }
 });

http://git-wip-us.apache.org/repos/asf/ignite/blob/225d4f52/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index ea105ae..7f30981 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -1237,6 +1237,9 @@ public abstract class IgniteTxLocalAdapter extends 
IgniteTxAdapter implements Ig
  * @throws IgniteCheckedException If transaction check failed.
  */
 protected void checkValid() throws IgniteCheckedException {
+if (local() && !dht() && remainingTime() == -1 && 
cctx.tm().deadlockDetectionEnabled())
+state(MARKED_ROLLBACK, true);
+
 if (isRollbackOnly()) {
 if (remainingTime() == -1)
 throw new IgniteTxTimeoutCheckedException("Cache transaction 
timed out: " + this);

http://git-wip-us.apache.org/repos/asf/ignite/blob/225d4f52/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 529fdc3..0a2601d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java

[17/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 61dfb65f97c1d2d532d0f69b78ef4db37a727caf
Parents: 7f5d80d
Author: Aleksei Scherbakov 
Authored: Tue Aug 29 20:14:31 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Tue Aug 29 20:14:31 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java | 39 +-
 .../cache/transactions/IgniteTxManager.java | 43 +++-
 .../transactions/TxTimeoutHandlingTest.java |  4 +-
 3 files changed, 81 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/61dfb65f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 2fb0ff3..ac35ad9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -34,6 +34,7 @@ import javax.cache.CacheException;
 import javax.cache.expiry.ExpiryPolicy;
 import javax.cache.processor.EntryProcessor;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.NodeStoppingException;
@@ -67,6 +68,7 @@ import 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
 import 
org.apache.ignite.internal.processors.cache.transactions.TransactionProxy;
 import 
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
+import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
 import 
org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException;
 import 
org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
 import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
@@ -105,14 +107,12 @@ import static 
org.apache.ignite.internal.processors.cache.GridCacheOperation.TRA
 import static 
org.apache.ignite.internal.processors.cache.GridCacheOperation.UPDATE;
 import static 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.SER_READ_EMPTY_ENTRY_VER;
 import static 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.SER_READ_NOT_EMPTY_VER;
-import static org.apache.ignite.transactions.TransactionState.ACTIVE;
 import static org.apache.ignite.transactions.TransactionState.COMMITTED;
 import static org.apache.ignite.transactions.TransactionState.COMMITTING;
 import static org.apache.ignite.transactions.TransactionState.PREPARED;
 import static org.apache.ignite.transactions.TransactionState.PREPARING;
 import static org.apache.ignite.transactions.TransactionState.ROLLED_BACK;
 import static org.apache.ignite.transactions.TransactionState.ROLLING_BACK;
-import static org.apache.ignite.transactions.TransactionState.SUSPENDED;
 import static org.apache.ignite.transactions.TransactionState.UNKNOWN;
 
 /**
@@ -175,6 +175,10 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements AutoClosea
 @GridToStringExclude
 private TransactionProxyImpl proxy;
 
+/** */
+@GridToStringExclude
+private GridTimeoutObject timeoutHandler;
+
 /**
  * Empty constructor required for {@link Externalizable}.
  */
@@ -3148,6 +3152,12 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements AutoClosea
 // Prepare was called explicitly.
 return fut;
 
+// Clears timeout handler before prepare, because prepare phase will 
clean up everything right up.
+if (!clearTimeoutHandler()) {
+// Timeout closure has been invoked, tx will be rolled back.
+throw new IgniteException("Bad");
+}
+
 mapExplicitLocks();
 
 fut.prepare();
@@ -3170,6 +3180,15 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements AutoClosea
 }
 
 /**
+ * Clears timeout handler.
+ */
+public boolean clearTimeoutHandler() {
+timeoutHandler = null;
+
+return true;
+

[28/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 3097d8d81872a353970031ef115b4f18a67c19e2
Parents: 12669b8
Author: ascherbakoff 
Authored: Sat Sep 9 17:23:36 2017 +0300
Committer: ascherbakoff 
Committed: Sat Sep 9 17:23:36 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java |  6 ++--
 .../transactions/TxRollbackOnTimeoutTest.java   | 29 
 2 files changed, 27 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/3097d8d8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 8d15e87..fb4c5e1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3266,9 +3266,6 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 if (log.isDebugEnabled())
 log.debug("Rolling back near tx: " + this);
 
-if (remainingTime() > 0 && !implicit())
-cctx.time().removeTimeoutObject(this);
-
 if (fastFinish()) {
 state(PREPARING);
 state(PREPARED);
@@ -3696,6 +3693,9 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 /** {@inheritDoc} */
 @Override public void close() throws IgniteCheckedException {
+if (timeout() > 0 && !implicit())
+cctx.time().removeTimeoutObject(this);
+
 TransactionState state = state();
 
 if (state != ROLLING_BACK && state != ROLLED_BACK && state != 
COMMITTING && state != COMMITTED)

http://git-wip-us.apache.org/repos/asf/ignite/blob/3097d8d8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index d854cf0..3d25d10 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -30,11 +30,13 @@ import org.apache.ignite.internal.IgniteInternalFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 import org.apache.ignite.internal.util.GridConcurrentSkipListSet;
+import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionTimeoutException;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static 
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
@@ -209,10 +211,20 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 IgniteEx client = (IgniteEx)startGrid("client");
 
 for (int i = 0; i < 5; i++)
-testTimeoutRemoval(grid(0), i);
+testTimeoutRemoval0(grid(0), i, TX_TIMEOUT);
 
 for (int i = 0; i < 5; i++)
-testTimeoutRemoval(client, i);
+testTimeoutRemoval0(client, i, TX_TIMEOUT);
+
+for (int i = 0; i < 5; i++)
+testTimeoutRemoval0(grid(0), i, 1);
+
+for (int i = 0; i < 5; i++)
+testTimeoutRemoval0(client, i, 1);
+
+// Repeat with more iterations to make sure everything is cleared.
+for (int i = 0; i < 500; i++)
+testTimeoutRemoval0(client, 2, 1);
 }
 
 /**
@@ -220,10 +232,10 @@ public class TxRollbackOnTimeoutTest 

[48/50] [abbrv] ignite git commit: ignite-6181-1

2017-09-19 Thread sboikov
ignite-6181-1


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

Branch: refs/heads/ignite-6181-1
Commit: f950cb15d55b6858987e3baca31ce1d350ec0c5d
Parents: ea5cd0d
Author: sboikov 
Authored: Tue Sep 19 12:55:06 2017 +0300
Committer: sboikov 
Committed: Tue Sep 19 12:56:44 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java |  81 +-
 .../transactions/IgniteTransactionsImpl.java|   3 +-
 .../cache/transactions/IgniteTxManager.java |  15 +--
 .../cache/IgniteTxConfigCacheSelfTest.java  |   2 +-
 .../IgniteOptimisticTxSuspendResumeTest.java|   3 +-
 .../transactions/TxRollbackOnTimeoutTest.java   | 109 +++
 .../hadoop/impl/HadoopTxConfigCacheTest.java|   2 +-
 7 files changed, 121 insertions(+), 94 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/f950cb15/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 0e75b69..ad3b464 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -46,7 +46,6 @@ import 
org.apache.ignite.internal.processors.cache.EntryGetResult;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
 import 
org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
-import org.apache.ignite.internal.processors.cache.GridCacheFuture;
 import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate;
 import org.apache.ignite.internal.processors.cache.GridCacheMvccFuture;
 import org.apache.ignite.internal.processors.cache.GridCacheOperation;
@@ -57,14 +56,11 @@ import 
org.apache.ignite.internal.processors.cache.KeyCacheObject;
 import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry;
 import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxMapping;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry;
-import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxFinishFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture;
-import 
org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedLockFuture;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtDetachedCacheEntry;
 import org.apache.ignite.internal.processors.cache.dr.GridCacheDrInfo;
-import org.apache.ignite.internal.processors.cache.local.GridLocalLockFuture;
 import 
org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry;
 import org.apache.ignite.internal.processors.cache.transactions.IgniteTxKey;
@@ -94,7 +90,6 @@ import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiClosure;
 import org.apache.ignite.lang.IgniteClosure;
-import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.plugin.security.SecurityPermission;
 import org.apache.ignite.transactions.TransactionConcurrency;
@@ -140,13 +135,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements GridTimeou
 private static final AtomicReferenceFieldUpdater ROLLBACK_FUT_UPD =
 AtomicReferenceFieldUpdater.newUpdater(GridNearTxLocal.class, 
GridNearTxFinishFuture.class, "rollbackFut");
 
-/** Lock future predicate. */
-private static final IgnitePredicate LOCK_FUTURES = 
new IgnitePredicate() {
-@Override public boolean apply(GridCacheFuture fut) {
-return fut instanceof GridDhtColocatedLockFuture;
-}
-};
-
 /** DHT mappings. */
 private IgniteTxMappings mappings;
 
@@ 

[47/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: ea5cd0dc9eaaeeca5c36726bf7fdff32fc1e2b67
Parents: 1dcb42b
Author: ascherbakoff 
Authored: Sat Sep 16 16:00:41 2017 +0300
Committer: ascherbakoff 
Committed: Sat Sep 16 16:00:41 2017 +0300

--
 .../IgniteOptimisticTxSuspendResumeTest.java  |  2 +-
 .../transactions/TxRollbackOnTimeoutTest.java | 18 +++---
 2 files changed, 8 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/ea5cd0dc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
index deb58bc..7b88b6d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteOptimisticTxSuspendResumeTest.java
@@ -54,7 +54,7 @@ import static 
org.apache.ignite.transactions.TransactionState.SUSPENDED;
  */
 public class IgniteOptimisticTxSuspendResumeTest extends 
GridCommonAbstractTest {
 /** Transaction timeout. */
-private static final long TX_TIMEOUT = 100;
+private static final long TX_TIMEOUT = 300;
 
 /** Future timeout */
 private static final int FUT_TIMEOUT = 5000;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ea5cd0dc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index c55f59e..360cba1 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.internal.processors.cache.transactions;
 
-import java.util.Collections;
 import java.util.concurrent.CountDownLatch;
 import javax.cache.CacheException;
 import org.apache.ignite.Ignite;
@@ -54,10 +53,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 private static final long TX_MIN_TIMEOUT = 1;
 
 /** */
-private static final long TX_TIMEOUT = 300;
-
-/** */
-private static final long TX_DEFAULT_TIMEOUT = 3_000;
+private static final long TX_TIMEOUT = 500;
 
 /** */
 private static final String CACHE_NAME = "test";
@@ -83,7 +79,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
 
 TransactionConfiguration txCfg = new TransactionConfiguration();
-txCfg.setDefaultTxTimeout(TX_DEFAULT_TIMEOUT);
+txCfg.setDefaultTxTimeout(TX_TIMEOUT);
 
 cfg.setTransactionConfiguration(txCfg);
 
@@ -257,13 +253,13 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 IgniteInternalFuture fut1 = multithreadedAsync(new Runnable() {
 @Override public void run() {
 try {
-try (Transaction tx = 
node1.transactions().txStart(PESSIMISTIC, REPEATABLE_READ, TX_TIMEOUT, 2)) {
+try (Transaction tx = node1.transactions().txStart()) {
 node1.cache(CACHE_NAME).put(1, 1);
 
 l.countDown();
 U.awaitQuiet(l);
 
-
node1.cache(CACHE_NAME).putAll(Collections.singletonMap(2, 2));
+node1.cache(CACHE_NAME).put(2, 2);
 
 tx.commit();
 
@@ -294,8 +290,8 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 fut1.get();
 fut2.get();
 
-assertTrue(node1.cache(CACHE_NAME).containsKey(1));
-assertTrue(node1.cache(CACHE_NAME).containsKey(2));
+assertTrue("Expecting commited key 2", 

[25/50] [abbrv] ignite git commit: ignite-6181 minor

2017-09-19 Thread sboikov
ignite-6181 minor


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

Branch: refs/heads/ignite-6181-1
Commit: 685e69ac9014316e001353f98db6b27d2b9a74c7
Parents: b770c0a
Author: sboikov 
Authored: Wed Sep 6 13:17:36 2017 +0300
Committer: sboikov 
Committed: Wed Sep 6 14:09:50 2017 +0300

--
 .../transactions/TxRollbackOnTimeoutTest.java   | 121 +++
 1 file changed, 95 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/685e69ac/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 84e85ff..4799534 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -18,18 +18,15 @@
 package org.apache.ignite.internal.processors.cache.transactions;
 
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
+import javax.cache.CacheException;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
-import org.apache.ignite.IgniteSystemProperties;
-import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.TransactionConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 import org.apache.ignite.internal.util.GridConcurrentSkipListSet;
@@ -38,8 +35,10 @@ import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.transactions.Transaction;
-import org.apache.ignite.transactions.TransactionConcurrency;
-import org.apache.ignite.transactions.TransactionIsolation;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static 
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
 
 /**
  * Tests an ability to eagerly rollback timed out transactions.
@@ -69,7 +68,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
 cfg.setClientMode("client".equals(igniteInstanceName));
 
-cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(IP_FINDER));
+((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
 
 TransactionConfiguration txCfg = new TransactionConfiguration();
 txCfg.setDefaultTxTimeout(TX_TIMEOUT);
@@ -77,7 +76,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 cfg.setTransactionConfiguration(txCfg);
 
 CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME);
-ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
+ccfg.setAtomicityMode(TRANSACTIONAL);
 ccfg.setBackups(2);
 
 cfg.setCacheConfiguration(ccfg);
@@ -101,6 +100,8 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
+ *
+ * @throws Exception If failed.
  */
 public void testWaitingTxUnblockedOnTimeout1() throws Exception {
 testWaitingTxUnblockedOnTimeout0(grid(0), grid(0));
@@ -108,6 +109,8 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
 /**
  * Tests if timeout on first tx unblocks second tx waiting for the locked 
key.
+ *
+ * @throws Exception If failed.
  */
 public void testWaitingTxUnblockedOnTimeout2() throws Exception {
 testWaitingTxUnblockedOnTimeout0(grid(0), grid(1));
@@ -115,6 +118,8 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
   

[26/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 8ab36ce2ba4219fcf9d5272d999267878c0e20a5
Parents: 685e69a
Author: ascherbakoff 
Authored: Thu Sep 7 19:53:58 2017 +0300
Committer: ascherbakoff 
Committed: Thu Sep 7 19:53:58 2017 +0300

--
 .../processors/cache/distributed/near/GridNearTxLocal.java | 6 +++---
 .../processors/cache/transactions/TxRollbackOnTimeoutTest.java | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/8ab36ce2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index 965a502..0c76aec 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3256,9 +3256,6 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
  * @throws IgniteCheckedException If failed.
  */
 public void rollback() throws IgniteCheckedException {
-if (timeout() > 0)
-cctx.time().removeTimeoutObject(this);
-
 rollbackNearTxLocalAsync().get();
 }
 
@@ -3269,6 +3266,9 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 if (log.isDebugEnabled())
 log.debug("Rolling back near tx: " + this);
 
+if (remainingTime() > 0)
+cctx.time().removeTimeoutObject(this);
+
 if (fastFinish()) {
 state(PREPARING);
 state(PREPARED);

http://git-wip-us.apache.org/repos/asf/ignite/blob/8ab36ce2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 4799534..d854cf0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -60,7 +60,7 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 private final CountDownLatch blocked = new CountDownLatch(1);
 
 /** */
-private CountDownLatch unblocked = new CountDownLatch(1);
+private final CountDownLatch unblocked = new CountDownLatch(1);
 
 /** {@inheritDoc} */
 @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {



[39/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 0e2ff6a89a223991f5ce35d9656301f2004973e4
Parents: 047ac12
Author: Aleksei Scherbakov 
Authored: Thu Sep 14 17:12:08 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Thu Sep 14 17:12:08 2017 +0300

--
 .../colocated/GridDhtColocatedLockFuture.java   |  36 +++
 .../cache/distributed/near/GridNearTxLocal.java |  39 ++-
 .../transactions/TxRollbackOnTimeoutTest.java   | 107 ---
 3 files changed, 74 insertions(+), 108 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/0e2ff6a8/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 7500549..82b0e6e 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
@@ -147,7 +147,7 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 private final Map> valMap;
 
 /** Trackable flag (here may be non-volatile). */
-private boolean trackable;
+private boolean trackable = true;
 
 /** TTL for create operation. */
 private final long createTtl;
@@ -631,6 +631,13 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 }
 }
 
+/**
+ * @return Timeout.
+ */
+public long timeout() {
+return timeout;
+}
+
 /** {@inheritDoc} */
 @Override public String toString() {
 Collection futs = F.viewReadOnly(futures(), new 
C1() {
@@ -849,8 +856,12 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 assert !remap || (clientNode && (tx == null || !tx.hasRemoteLocks()));
 
 // First assume this node is primary for all keys passed in.
-if (!clientNode && mapAsPrimary(keys, topVer))
+if (!clientNode && mapAsPrimary(keys, topVer)) {
+if (!cctx.mvcc().addFuture(this))
+throw new IllegalStateException("Duplicate future ID: " + 
this);
+
 return;
+}
 
 mappings = new ArrayDeque<>();
 
@@ -881,8 +892,6 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 if (log.isDebugEnabled())
 log.debug("Starting (re)map for mappings [mappings=" + mappings + 
", fut=" + this + ']');
 
-boolean hasRmtNodes = false;
-
 boolean first = true;
 
 // Create mini futures.
@@ -1029,11 +1038,8 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 }
 }
 
-if (!distributedKeys.isEmpty()) {
+if (!distributedKeys.isEmpty())
 mapping.distributedKeys(distributedKeys);
-
-hasRmtNodes |= !mapping.node().isLocal();
-}
 else {
 assert mapping.request() == null;
 
@@ -1041,14 +1047,8 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 }
 }
 
-if (hasRmtNodes) {
-trackable = true;
-
-if (!remap && !cctx.mvcc().addFuture(this))
-throw new IllegalStateException("Duplicate future ID: " + 
this);
-}
-else
-trackable = false;
+if (!remap && !cctx.mvcc().addFuture(this))
+throw new IllegalStateException("Duplicate future ID: " + this);
 
 proceedMapping();
 }
@@ -1264,8 +1264,6 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 return true;
 }
 
-trackable = false;
-
 if (tx != null) {
 if (explicit)
 tx.markExplicit(cctx.localNodeId());
@@ -1673,4 +1671,4 @@ public final class GridDhtColocatedLockFuture extends 
GridCacheCompoundIdentityF
 return S.toString(MiniFuture.class, this, "node", node.id(), 

[46/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 1dcb42ba9b5f20214d42ebfc0773b54f636cf2ec
Parents: eebaa6b
Author: Aleksei Scherbakov 
Authored: Fri Sep 15 19:45:59 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 15 19:45:59 2017 +0300

--
 .../cache/transactions/TxRollbackOnTimeoutTest.java  | 11 ---
 1 file changed, 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/1dcb42ba/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index cdf1f00..c55f59e 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -249,17 +249,6 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 
 /**
  * Tests if deadlock is resolved on timeout with correct message.
- *
- * @throws Exception If failed.
- */
-//public void testDeadlockUnblockedOnTimeout4() throws Exception {
-//Ignite client = startGrid("client");
-//
-//testDeadlockUnblockedOnTimeout0(client, ignite(0));
-//}
-
-/**
- * Tests if deadlock is resolved on timeout with correct message.
  * @throws Exception
  */
 private void testDeadlockUnblockedOnTimeout0(final Ignite node1, final 
Ignite node2) throws Exception {



[37/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: a6faebdc36bd163e59733ba0764c3059f8286afc
Parents: b017713
Author: Aleksei Scherbakov 
Authored: Wed Sep 13 17:55:23 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Wed Sep 13 17:55:23 2017 +0300

--
 .../transactions/TxRollbackOnTimeoutTest.java   | 44 
 1 file changed, 44 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/a6faebdc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
index 20f6695..847f2b0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
@@ -318,6 +318,50 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
 }
 
 /**
+ * Tests tx timeout on deadlock.
+ *
+ * @throws Exception
+ */
+public void testTimeoutOnDeadlock() throws Exception {
+final CountDownLatch l = new CountDownLatch(2);
+
+IgniteInternalFuture fut1 = multithreadedAsync(new Runnable() {
+@Override public void run() {
+try(Transaction tx = 
grid(0).transactions().txStart(PESSIMISTIC, REPEATABLE_READ, TX_TIMEOUT, 1)) {
+grid(0).cache(CACHE_NAME).put(1, 1);
+
+l.countDown();
+U.awaitQuiet(l);
+
+grid(0).cache(CACHE_NAME).put(2, 2);
+}
+
+}
+}, 1, "First");
+
+IgniteInternalFuture fut2 = multithreadedAsync(new Runnable() {
+@Override public void run() {
+try(Transaction tx = 
grid(1).transactions().txStart(PESSIMISTIC, REPEATABLE_READ, 0, 1)) {
+grid(1).cache(CACHE_NAME).put(2, 2);
+
+l.countDown();
+U.awaitQuiet(l);
+
+grid(1).cache(CACHE_NAME).put(1, 1);
+}
+}
+
+}, 1, "Second");
+
+fut1.get();
+
+fut2.get();
+
+assertTrue(grid(0).cache(CACHE_NAME).containsKey(1));
+assertTrue(grid(0).cache(CACHE_NAME).containsKey(2));
+}
+
+/**
  * @param concurrency Concurrency.
  * @param isolation Isolation.
  *



[40/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: ab4316ae965bb46af6521ff545956614b2dec62a
Parents: 0e2ff6a
Author: Aleksei Scherbakov 
Authored: Thu Sep 14 18:31:28 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Thu Sep 14 18:31:28 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java | 30 ++-
 .../transactions/TxRollbackOnTimeoutTest.java   | 56 +++-
 2 files changed, 61 insertions(+), 25 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/ab4316ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index ee3d1d9..0e75b69 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -3139,6 +3139,8 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 GridNearTxPrepareFutureAdapter fut = 
(GridNearTxPrepareFutureAdapter)prepFut;
 
 if (fut == null) {
+removeTimeoutHandler();
+
 long timeout = remainingTime();
 
 // Future must be created before any exception can be thrown.
@@ -3163,8 +3165,6 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 // Prepare was called explicitly.
 return fut;
 
-removeTimeoutHandler();
-
 mapExplicitLocks();
 
 fut.prepare();
@@ -3710,9 +3710,12 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 if (state != ROLLING_BACK && state != ROLLED_BACK && state != 
COMMITTING && state != COMMITTED)
 rollback();
-else
+else {
 cctx.tm().onLocalClose(this);
 
+removeTimeoutHandler();
+}
+
 synchronized (this) {
 try {
 while (!done())
@@ -4023,10 +4026,10 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 }
 
 /**
- * Removes timeout handler used for eager rollbacks on timeouts.
+ * Removes timeout handler.
  */
 private void removeTimeoutHandler() {
-if (timeout() > 0 && !implicit() && !timedOut())
+if (timeout() > 0 && !implicit())
 cctx.time().removeTimeoutObject(this);
 }
 
@@ -4037,12 +4040,12 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 
 /** {@inheritDoc} */
 @Override public long endTime() {
-return startTime() + timeout() - 150;
+return startTime() + timeout();
 }
 
 /** {@inheritDoc} */
 @Override public void onTimeout() {
-//if (state(MARKED_ROLLBACK, true)) {
+if (state(MARKED_ROLLBACK, true)) {
 cctx.kernalContext().closure().runLocalSafe(new Runnable() {
 @Override public void run() {
 // Wait for active local lock futures completion to 
prevent races with deadlock detection.
@@ -4060,15 +4063,16 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
 }
 }
 
-if (state(MARKED_ROLLBACK, true)) {
-log().error("Transaction is timed out and will be 
rolled back [timeout=" + timeout() +
-", tx=" + GridNearTxLocal.this + ']');
+if (state() != MARKED_ROLLBACK)
+return;
 
-rollbackNearTxLocalAsync();
-}
+log().error("Transaction is timed out and will be rolled 
back [timeout=" + timeout() +
+", tx=" + GridNearTxLocal.this + ']');
+
+rollbackNearTxLocalAsync();
 }
 });
-//}
+}
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/ab4316ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transactions/TxRollbackOnTimeoutTest.java
--
diff --git 

[19/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 9da2dde3e7818d07d39756f2b92255d15acc147e
Parents: 61dfb65
Author: Aleksei Scherbakov 
Authored: Wed Aug 30 18:12:10 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Wed Aug 30 18:12:10 2017 +0300

--
 .../cache/distributed/near/GridNearTxLocal.java |  65 ++--
 .../cache/transactions/IgniteTxManager.java |  42 +--
 .../transactions/TxRollbackOnTimeoutTest.java   | 303 +++
 .../transactions/TxTimeoutHandlingTest.java | 147 -
 4 files changed, 335 insertions(+), 222 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/9da2dde3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index ac35ad9..ebae49f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -34,7 +34,6 @@ import javax.cache.CacheException;
 import javax.cache.expiry.ExpiryPolicy;
 import javax.cache.processor.EntryProcessor;
 import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.NodeStoppingException;
@@ -119,7 +118,7 @@ import static 
org.apache.ignite.transactions.TransactionState.UNKNOWN;
  * Replicated user transaction.
  */
 @SuppressWarnings("unchecked")
-public class GridNearTxLocal extends GridDhtTxLocalAdapter implements 
AutoCloseable  {
+public class GridNearTxLocal extends GridDhtTxLocalAdapter implements 
GridTimeoutObject, AutoCloseable {
 /** */
 private static final long serialVersionUID = 0L;
 
@@ -176,8 +175,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements AutoClosea
 private TransactionProxyImpl proxy;
 
 /** */
-@GridToStringExclude
-private GridTimeoutObject timeoutHandler;
+private long endTime;
 
 /**
  * Empty constructor required for {@link Externalizable}.
@@ -224,7 +222,7 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements AutoClosea
 plc,
 concurrency,
 isolation,
-timeout,
+timeout == 0 ? 0 : Math.max(100, timeout),
 false,
 storeEnabled,
 false,
@@ -234,6 +232,12 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter 
implements AutoClosea
 
 mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new 
IgniteTxMappingsImpl();
 
+if (this.timeout > 0) {
+endTime = U.currentTimeMillis() + this.timeout;
+
+cctx.time().addTimeoutObject(this);
+}
+
 initResult();
 }
 
@@ -3152,11 +3156,8 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements AutoClosea
 // Prepare was called explicitly.
 return fut;
 
-// Clears timeout handler before prepare, because prepare phase will 
clean up everything right up.
-if (!clearTimeoutHandler()) {
-// Timeout closure has been invoked, tx will be rolled back.
-throw new IgniteException("Bad");
-}
+if (endTime > 0)
+cctx.time().removeTimeoutObject(this);
 
 mapExplicitLocks();
 
@@ -3180,15 +3181,6 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements AutoClosea
 }
 
 /**
- * Clears timeout handler.
- */
-public boolean clearTimeoutHandler() {
-timeoutHandler = null;
-
-return true;
-}
-
-/**
  * @return Prepare future.
  */
 private IgniteInternalFuture prepareAsync() {
@@ -3269,7 +3261,8 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements AutoClosea
  * @throws IgniteCheckedException If failed.
  */
 public void rollback() throws IgniteCheckedException {
-clearTimeoutHandler();
+if (endTime > 0)
+cctx.time().removeTimeoutObject(this);
 
 rollbackNearTxLocalAsync().get();
 }
@@ -3786,20 +3779,6 @@ 

[43/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 933b1d7444b8223ab66d0e54a0c1847d83f25359
Parents: 7d05fb1
Author: Aleksei Scherbakov 
Authored: Fri Sep 15 12:30:43 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 15 12:30:43 2017 +0300

--
 .../cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java | 4 
 1 file changed, 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/933b1d74/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
index 34a1dc5..cb1ab57 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxConfigCacheForceTxTimeoutSelfTest.java
@@ -36,8 +36,4 @@ public class IgniteTxConfigCacheForceTxTimeoutSelfTest 
extends IgniteTxConfigCac
 
 System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
 }
-
-@Override public void testUserTxTimeout() throws Exception {
-super.testUserTxTimeout();
-}
 }



[23/50] [abbrv] ignite git commit: IGNITE-6181 wip.

2017-09-19 Thread sboikov
IGNITE-6181 wip.


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

Branch: refs/heads/ignite-6181-1
Commit: 6a928460877ba42d965cb7ec38e7962f338eacbe
Parents: d5f3a67
Author: Aleksei Scherbakov 
Authored: Fri Sep 1 19:17:31 2017 +0300
Committer: Aleksei Scherbakov 
Committed: Fri Sep 1 19:17:31 2017 +0300

--
 .../processors/cache/GridCacheAdapter.java  |  6 ++
 .../cache/distributed/near/GridNearTxLocal.java | 21 ++--
 .../cache/transactions/IgniteInternalTx.java|  2 +-
 .../transactions/IgniteTransactionsImpl.java|  4 +++-
 .../cache/transactions/IgniteTxAdapter.java |  4 +++-
 .../transactions/IgniteTxLocalAdapter.java  |  3 ---
 .../cache/transactions/IgniteTxManager.java | 20 +--
 .../cache/IgniteTxConfigCacheSelfTest.java  | 12 +++
 .../transactions/TxRollbackOnTimeoutTest.java   |  2 +-
 9 files changed, 54 insertions(+), 20 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/6a928460/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index fed716c..2be738a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -102,6 +102,7 @@ import 
org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFi
 import org.apache.ignite.internal.processors.task.GridInternal;
 import 
org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException;
 import 
org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException;
+import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
 import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
 import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
@@ -138,6 +139,7 @@ import 
org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
+import org.apache.ignite.transactions.TransactionState;
 import org.jetbrains.annotations.Nullable;
 import org.jsr166.LongAdder8;
 
@@ -4032,6 +4034,10 @@ public abstract class GridCacheAdapter implements 
IgniteInternalCache