[17/35] ignite git commit: ignite-6181 Tx rollback on timeout
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.Entrye : 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
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: sboikovAuthored: 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
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.Entrye : 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
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: sboikovAuthored: 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
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.Entrye : 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
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
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: sboikovAuthored: 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
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: sboikovAuthored: 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
[49/50] [abbrv] ignite git commit: ignite-6181-1
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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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: ascherbakoffAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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
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: sboikovAuthored: 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.
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 ScherbakovAuthored: 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.
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: ascherbakoffAuthored: 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.
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: ascherbakoffAuthored: 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.
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: ascherbakoffAuthored: 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.
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: ascherbakoffAuthored: 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.
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 ScherbakovAuthored: 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.
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: ascherbakoffAuthored: 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 IgniteInternalCache putAllAsync0(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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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: ascherbakoffAuthored: 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
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: sboikovAuthored: 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.
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: ascherbakoffAuthored: 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
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: sboikovAuthored: 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.
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: ascherbakoffAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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.
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 ScherbakovAuthored: 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