IGNITE-8939 Catch and proper propagate transaction string reprsentation - Fixes 
#4454.

Signed-off-by: Dmitriy Pavlov <[email protected]>


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

Branch: refs/heads/ignite-8446
Commit: 458480c5b0520aa8e28935361a37ab49e1e65ff6
Parents: 3ea3a56
Author: Evgeny Stanilovskiy <[email protected]>
Authored: Wed Aug 1 14:05:58 2018 +0300
Committer: Dmitriy Pavlov <[email protected]>
Committed: Wed Aug 1 14:05:58 2018 +0300

----------------------------------------------------------------------
 .../cache/transactions/IgniteTxHandler.java     | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/458480c5/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 8f2dbc0..5b82333 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
@@ -23,6 +23,8 @@ import java.util.UUID;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.failure.FailureContext;
+import org.apache.ignite.failure.FailureType;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
@@ -954,7 +956,23 @@ public class IgniteTxHandler {
             }
         }
         catch (Throwable e) {
-            U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
+            try {
+                U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" + tx + ']', e);
+            }
+            catch (Throwable e0) {
+                ClusterNode node0 = ctx.discovery().node(nodeId);
+
+                U.error(log, "Failed completing transaction [commit=" + 
req.commit() + ", tx=" +
+                        CU.txString(tx) + ']', e);
+
+                U.error(log, "Failed to log message due to an error: ", e0);
+
+                if (node0 != null && (!node0.isClient() || node0.isLocal())) {
+                    ctx.kernalContext().failure().process(new 
FailureContext(FailureType.CRITICAL_ERROR, e));
+
+                    throw e;
+                }
+            }
 
             if (tx != null) {
                 tx.commitError(e);

Reply via email to