Ilya Shishkov created IGNITE-26261:
--------------------------------------
Summary: Key class change leads to critical failure and B+Tree
corruption
Key: IGNITE-26261
URL: https://issues.apache.org/jira/browse/IGNITE-26261
Project: Ignite
Issue Type: Task
Reporter: Ilya Shishkov
It seems, than we have insufficient validation when inserting entries with
changed class of key to cache with indexing.
When we try to put entry with new key class, there are some possible scenarios:
# Some data become unavailable with SQL.
# Unexpected SQL requests failures.
# Node failures.
# B+Tree corruption. As I see, there are no possibility to rebuild indexes,
maintenance mode also fails to rebuild index. It is impossible to restore data
with standard utilities.
In all cases, root cause is such error:
{code}
org.apache.ignite.binary.BinaryObjectException: Failed to get field because
type ID of passed object differs from type ID this BinaryField belongs to
[expected=[typeId=449234053,
typeName=org.apache.ignite.KeyClassChangeTest$OtherIntKey],
actual=[typeId=1318599563,
typeName=org.apache.ignite.KeyClassChangeTest$IntKey], fieldId=106079,
fieldName=key, fieldType=int]
{code}
How to reproduce (TBD):
# Create cache with query entity, where key class contains field, annotated
both {{@AffinityKeyMapped}} and {{@QuerySqlField}} annotations. For node and
SQL failures
--
This message was sent by Atlassian Jira
(v8.20.10#820010)