In ignite 2.7.5 I got following exception: org.apache.ignite.IgniteException: Failed to create string representation of binary object. at org.apache.ignite.internal.util.tostring.GridToStringBuilder.toStringImpl(GridToStringBuilder.java:1022) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:762) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.util.tostring.GridToStringBuilder.toString(GridToStringBuilder.java:710) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.toString(IgniteTxLocalAdapter.java:1645) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.toString(GridDhtTxLocalAdapter.java:944) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.toString(GridDhtTxLocal.java:650) ~[ignite-core-2.7.5.jar:2.7.5] at java.lang.String.valueOf(String.java:2994) ~[?:1.8.0_222] at java.lang.StringBuilder.append(StringBuilder.java:131) ~[?:1.8.0_222] at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:942) ~[ignite-core-2.7.5.jar:2.7.5] at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.localFinish(GridDhtTxLocalAdapter.java:796) ~[ignite-core-2.7.5.jar:2.7.5]….
As I found in sources, it was error during handling of other error. So this error masks real problem. See org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter lines 934-944: catch (Throwable ex) { // We are about to initiate transaction rollback when tx has started to committing. // Need to remove version from committed list. cctx.tm().removeCommittedTx(this); boolean isNodeStopping = X.hasCause(ex, NodeStoppingException.class); boolean hasInvalidEnvironmentIssue = X.hasCause(ex, InvalidEnvironmentException.class); IgniteCheckedException err0 = new IgniteTxHeuristicCheckedException("Failed to locally write to cache " + "(all transaction entries will be invalidated, however there was a window when " + "entries for this transaction were visible to others): " + this, ex); Exception occurs during IgniteTxHeuristicCheckedException creation. So we got unhandled error and server halt instead of IgniteTxHeuristicCheckedException and rollback logic. And the main issue: we lost any information about origin problem. Andrey.