You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2019/05/23 11:53:13 UTC
[ignite] branch master updated: IGNITE-11697 Fixed rollback of
suspended transaction on timeout (#6505)
This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 1e9b38a IGNITE-11697 Fixed rollback of suspended transaction on timeout (#6505)
1e9b38a is described below
commit 1e9b38af450e082a7f0fe8fc157a571dfe323aa2
Author: Alexey Plekhanov <33...@users.noreply.github.com>
AuthorDate: Thu May 23 14:52:57 2019 +0300
IGNITE-11697 Fixed rollback of suspended transaction on timeout (#6505)
Fixed rollback of suspended transaction on timeout
---
.../processors/cache/distributed/near/GridNearTxLocal.java | 10 ----------
.../processors/cache/transactions/IgniteTxManager.java | 6 ------
.../cache/distributed/IgniteOptimisticTxSuspendResumeTest.java | 4 ++++
3 files changed, 4 insertions(+), 16 deletions(-)
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 797221e..59bbbe5 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
@@ -126,7 +126,6 @@ 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;
/**
@@ -4832,15 +4831,6 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter implements GridTimeou
/** {@inheritDoc} */
@Override public void onTimeout() {
- if (state() == SUSPENDED) {
- try {
- resume(false, threadId());
- }
- catch (IgniteCheckedException e) {
- log.warning("Error resuming suspended transaction on timeout: " + this, e);
- }
- }
-
boolean proceed;
synchronized (this) {
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 6f2d594..06633b4 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
@@ -2437,8 +2437,6 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
}
clearThreadMap(tx);
-
- transactionMap(tx).remove(tx.xidVersion(), tx);
}
/**
@@ -2462,15 +2460,11 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
}
assert !threadMap.containsValue(tx) : tx;
- assert !transactionMap(tx).containsValue(tx) : tx;
assert !haveSystemTxForThread(Thread.currentThread().getId());
if (threadMap.putIfAbsent(threadId, tx) != null)
throw new IgniteCheckedException("Thread already has started a transaction.");
- if (transactionMap(tx).putIfAbsent(tx.xidVersion(), tx) != null)
- throw new IgniteCheckedException("Thread already has started a transaction.");
-
tx.threadId(threadId);
}
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 a1731cd..5545b59 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
@@ -484,6 +484,10 @@ public class IgniteOptimisticTxSuspendResumeTest extends GridCommonAbstractTest
assertEquals(ROLLED_BACK, tx.state());
+ // Here we check that we can start any transactional operation in the same thread after a suspended
+ // transaction is timed-out.
+ assertFalse(cache.containsKey(1));
+
tx.close();
}
}