[
https://issues.apache.org/jira/browse/IGNITE-11873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joel Lang updated IGNITE-11873:
-------------------------------
Attachment: TestSQLBug.java
> Enabling SQL On-heap Row Cache results in row cache being inconsistent with
> off-heap storage
> --------------------------------------------------------------------------------------------
>
> Key: IGNITE-11873
> URL: https://issues.apache.org/jira/browse/IGNITE-11873
> Project: Ignite
> Issue Type: Bug
> Components: cache, persistence, sql
> Affects Versions: 2.7
> Reporter: Joel Lang
> Priority: Minor
> Attachments: TestSQLBug.java, entry1.png, entry2.png
>
>
> When enabling the SQL On-heap Row Cache feature on a persistent, atomic,
> replicated cache, I found that after a number of queries and updates,
> averaging from 40 to 60 updates, the on-heap cache will become inconsistent
> with the off-heap storage. This manifests on a single, non-clustered Ignite
> node that I test with.
> Specifically I would query a cache using SQL for a specific entry, but when
> updating the entry using a normal put() on the cache, the entry would not be
> changed from the perspective of the next SQL query. This causes the business
> code to not behave as expected.
> When examining the state of the cache from DBeaver using a select query, I've
> found that the problem row in question is duplicated in the query results,
> and out of order despite ordering the results by key:
> !entry1.png!
> Restarting Ignite to clear the on-heap cache reveals the actual row:
> !entry2.png!
> When looking at the state of H2RowCache from a heap dump, I found that there
> where two different instances of GridH2KeyValueRowOnheap containing two
> different instances of the cache value in different states: the one I'm
> seeing and the one I'm trying to update it to.
> As a side effect of all of this, the ModifyingEntryProcessor always fails on
> that row because "entryVal" is never equal to "val" when checked in the
> process() method.
> If more information is needed to reproduce I can try to make a simple example
> next week after the holiday.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)