[ https://issues.apache.org/jira/browse/IGNITE-26261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Shishkov updated IGNITE-26261: ----------------------------------- Affects Version/s: 2.16 > 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 > 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. > 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)