Nikita Amelchev created IGNITE-29254:
----------------------------------------

             Summary: Fix node failure on unreadable entry value in 
CacheVersionConflictResolverImpl
                 Key: IGNITE-29254
                 URL: https://issues.apache.org/jira/browse/IGNITE-29254
             Project: Ignite
          Issue Type: Bug
            Reporter: Nikita Amelchev


{{CacheVersionConflictResolverImpl#isUseNew}} reads entry values outside the 
{{try}} block that guards the field comparison.
If reading fails (e.g. {{BinaryInvalidTypeException}} when the value class is 
absent on the destination cluster), the exception
escapes the resolver and the core treats it as a node failure:
* TRANSACTIONAL: heuristic transaction failure;
* ATOMIC: {{CorruptedTreeException}} from {{BPlusTree#invoke}}.

Both are CRITICAL_ERROR, the node stops, the applier stops, the batch is 
replayed after restart and the next primary node fails the same way.

A value that cannot be read should be handled like a failed field comparison 
already is: ERROR with the key, {{markResolveFailed}},
update ignored. The node and replication of other entries keep working, and the 
entry can be delivered again with the resend command.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to