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);
