IGNITE-6181 wip.

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

Branch: refs/heads/ignite-6181-1
Commit: 047ac12ca65c0738fb95c742b5aaac49a1b37f71
Parents: a6faebd
Author: Aleksei Scherbakov <[email protected]>
Authored: Wed Sep 13 19:49:50 2017 +0300
Committer: Aleksei Scherbakov <[email protected]>
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 void clearThreadMap(IgniteInternalTx tx) {
         if (tx.local() && !tx.dht()) {
-            if (!tx.system())
-                if (deadlockDetectionEnabled() || !tx.timedOut())
-                    threadMap.remove(tx.threadId(), tx);
-            else {
+            if (!tx.system()) {
                 Integer cacheId = tx.txState().firstCacheId();
 
                 if (cacheId != null)
@@ -1442,6 +1439,9 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
                     }
                 }
             }
+            else if (!tx.timedOut())
+                threadMap.remove(tx.threadId(), tx);
+
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/047ac12c/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 847f2b0..d22b682 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
@@ -37,6 +37,7 @@ 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.TransactionDeadlockException;
 import org.apache.ignite.transactions.TransactionIsolation;
 import org.apache.ignite.transactions.TransactionTimeoutException;
 import org.jsr166.ThreadLocalRandom8;
@@ -100,14 +101,14 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        System.setProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS, "0");
+        //System.setProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS, "0");
     }
 
     /** {@inheritDoc} */
     @Override protected void afterTestsStopped() throws Exception {
         super.afterTestsStopped();
 
-        System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
+        //System.clearProperty(IGNITE_TX_DEADLOCK_DETECTION_MAX_ITERS);
     }
 
     /** {@inheritDoc} */
@@ -348,12 +349,22 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
                     U.awaitQuiet(l);
 
                     grid(1).cache(CACHE_NAME).put(1, 1);
+
+                    tx.commit();
                 }
+
             }
 
         }, 1, "Second");
 
-        fut1.get();
+        try {
+            fut1.get();
+
+            fail();
+        }
+        catch (Exception e) {
+            assertTrue(X.hasCause(e, TransactionDeadlockException.class));
+        }
 
         fut2.get();
 

Reply via email to