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)

Reply via email to