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.