Anton Kalashnikov created IGNITE-13972:
------------------------------------------
Summary: Clear the item id before moving the page to the reuse
bucket
Key: IGNITE-13972
URL: https://issues.apache.org/jira/browse/IGNITE-13972
Project: Ignite
Issue Type: Task
Reporter: Anton Kalashnikov
There is assert - 'Incorrectly recycled pageId in reuse
bucket:'(org.apache.ignite.internal.processors.cache.persistence.freelist.PagesList#takeEmptyPage).
This assert sometimes fails. The reason is not clear because the same
condition checked before putting this page in to reuse bucket. (Perhaps we have
more than 1 link to this page?)
There is an idea to reset item id to 1 before the putting page to reuse bucket
in order of decreasing the possible invariants which can break this assert. It
is already true for all data pages but item id can be still more than 1 if it
is not a data page(ex. inner page).
After that, we can change this assert from checking the range to checking the
equality to 1 which theoretically will help us detect the problem fastly.
Maybe it is also not a bad idea to set itemId to an impossible value(ex. 0 or
255). Then we can add the assert on every taking from the free list which
checks that itemId more than 0 and if it is false that means we have a link to
the reuse bucket page from the bucket which is not reused. Which is a bug.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)