You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (Jira)" <ji...@apache.org> on 2023/05/17 09:50:00 UTC

[jira] [Created] (IGNITE-19495) SQL onheap cache stores row on per-cache basis, but access these rows on per-index basis

Aleksey Plekhanov created IGNITE-19495:
------------------------------------------

             Summary: SQL onheap cache stores row on per-cache basis, but access these rows on per-index basis
                 Key: IGNITE-19495
                 URL: https://issues.apache.org/jira/browse/IGNITE-19495
             Project: Ignite
          Issue Type: Bug
            Reporter: Aleksey Plekhanov
            Assignee: Aleksey Plekhanov


If there are two indexes on the same cache and sqlOnHeapCache property is enabled there can be node failures such as:
{noformat}
org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is corrupted [groupId=-917681634, pageIds=[844420635164678], cacheId=-917681634, cacheName=..., indexName=_key_PK, msg=Runtime failure on row: Row@71aeb1b9[ ... ][  ]]
...
Caused by: org.apache.ignite.IgniteException: Failed to store new index row.
...
Caused by: java.lang.UnsupportedOperationException: 13 cannot be used for inline type 19
{noformat}
Root cause: {{IndexRowCache}} is created per cache group (see {{IndexRowCacheRegistry#onCacheRegistered}}), but stores {{IndexRowImpl}} binded to particular index (see {{InlineIndexTree#createIndexRow}}). In case, when another index requires the same data row, it gets row from the onheap cache with the wrong index row handler.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)