[
https://issues.apache.org/jira/browse/IGNITE-26261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Shishkov updated IGNITE-26261:
-----------------------------------
Issue Type: Bug (was: Task)
> 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: Bug
> Affects Versions: 2.16
> Reporter: Ilya Shishkov
> Priority: Critical
>
> 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.
> Root cause for all cases:
> {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)