IGNITE-6181 wip.

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

Branch: refs/heads/ignite-6181-1
Commit: b770c0a1d6b2853c8b629a5ac08ecfbc00486d35
Parents: 6a92846
Author: ascherbakoff <alexey.scherbak...@gmail.com>
Authored: Tue Sep 5 16:50:42 2017 +0300
Committer: ascherbakoff <alexey.scherbak...@gmail.com>
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);
-        }
 
         initResult();
     }
@@ -4084,9 +4070,11 @@ public class GridNearTxLocal extends 
GridDhtTxLocalAdapter implements GridTimeou
     /** {@inheritDoc} */
     @Override public void onTimeout() {
         if (state(MARKED_ROLLBACK, true)) {
-            log.error("Transaction is timed out and will be rolled back: [" + 
this + ']', trackE);
-
-            rollbackNearTxLocalAsync();
+            cctx.kernalContext().closure().runLocalSafe(new Runnable() {
+                @Override public void run() {
+                    rollbackNearTxLocalAsync();
+                }
+            });
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/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 6f96b4b..de0e415 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.info("Received near finish response [txId=" + 
res.xid() + ", node=" + nodeId + ']');
+        if (txFinishMsgLog.isDebugEnabled())
+            txFinishMsgLog.debug("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.info("Received near finish request [txId=" + 
req.version() + ", node=" + nodeId + ']');
+        if (txFinishMsgLog.isDebugEnabled())
+            txFinishMsgLog.debug("Received near finish request [txId=" + 
req.version() + ", node=" + nodeId + ']');
 
         IgniteInternalFuture<IgniteInternalTx> fut = finish(nodeId, null, req);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/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..e6e19e3 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
@@ -92,7 +92,6 @@ import static 
org.apache.ignite.internal.processors.dr.GridDrType.DR_NONE;
 import static org.apache.ignite.internal.processors.dr.GridDrType.DR_PRIMARY;
 import static org.apache.ignite.transactions.TransactionState.COMMITTED;
 import static org.apache.ignite.transactions.TransactionState.COMMITTING;
-import static org.apache.ignite.transactions.TransactionState.MARKED_ROLLBACK;
 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;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/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 ee7d922..7ff36ac 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
@@ -31,7 +31,6 @@ import java.util.UUID;
 import java.util.concurrent.ConcurrentMap;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteClientDisconnectedException;
-import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.binary.BinaryObjectException;
 import org.apache.ignite.cluster.ClusterNode;
@@ -70,7 +69,6 @@ import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearOpti
 import 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal;
 import 
org.apache.ignite.internal.processors.cache.transactions.TxDeadlockDetection.TxDeadlockFuture;
 import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
-import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutObjectAdapter;
 import 
org.apache.ignite.internal.transactions.IgniteTxOptimisticCheckedException;
 import org.apache.ignite.internal.transactions.IgniteTxTimeoutCheckedException;
@@ -1425,11 +1423,8 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
     private void clearThreadMap(IgniteInternalTx tx) {
         if (tx.local() && !tx.dht()) {
             if (!tx.system()) {
-                /**
-                 * Timed out local transactions are cleared in {@link 
#onLocalClose}
-                 * TODO reduce heap size of timed out transaction.
-                 */
-                if (!(tx.timedOut() && tx.pessimistic() && tx.local() && 
!tx.dht()))
+                /** Timed out local transactions are cleared in {@link 
#onLocalClose}. */
+                if (!tx.timedOut() || !tx.pessimistic())
                     threadMap.remove(tx.threadId(), tx);
             }
             else {
@@ -2323,7 +2318,7 @@ public class IgniteTxManager extends 
GridCacheSharedManagerAdapter {
     }
 
     /**
-     * Remove thread completely.
+     * Callback for closing local transaction.
      * @param threadId Thread ID.
      * @param tx Local transaction.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/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 bb1bbc7..84e85ff 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
@@ -86,20 +86,6 @@ public class TxRollbackOnTimeoutTest extends 
GridCommonAbstractTest {
     }
 
     /** {@inheritDoc} */
-    @Override protected void beforeTestsStarted() throws Exception {
-        super.beforeTestsStarted();
-
-        
System.setProperty(IgniteSystemProperties.IGNITE_TRACK_TRANSACTION_INITIATOR, 
"true");
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTestsStopped() throws Exception {
-        super.afterTestsStopped();
-
-        
System.clearProperty(IgniteSystemProperties.IGNITE_TRACK_TRANSACTION_INITIATOR);
-    }
-
-    /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/b770c0a1/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 dea0eb0..c06647a 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
@@ -134,6 +134,7 @@ 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.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;
@@ -314,6 +315,8 @@ public class IgniteCacheTestSuite extends TestSuite {
 
         suite.addTestSuite(IgniteIncompleteCacheObjectSelfTest.class);
 
+        suite.addTestSuite(TxRollbackOnTimeoutTest.class);
+
         return suite;
     }
 }

Reply via email to