Ivan Bessonov created IGNITE-27113:
--------------------------------------

             Summary: Parallel page acquiring with different IDS breaks page 
header invariants
                 Key: IGNITE-27113
                 URL: https://issues.apache.org/jira/browse/IGNITE-27113
             Project: Ignite
          Issue Type: Bug
            Reporter: Ivan Bessonov
            Assignee: Ivan Bessonov


The scenario is the following:
 * Persistent page memory
 * We acquire the page without knowing its ID, meaning that our {{tag}} is 
different from the real one.
 * Doing so, the system acquires segment write lock, inside of if it acquires a 
page write lock with a wrong tag, then releases segment write lock.
 * In the short window of time after this we have a locked page, that can be 
acquired by a parallel thread. If that thread successfully acquires the page 
and tries to have a read lock on it with a valid tag, the attempt will fail. 
This is because the tag is still wrong.
 * The side effects are unpredictable.

What we need to achieve:
 * "acquirePage" should only return the pointer when it has a correct values in 
the header. In particular, we need a correct value in the {{tag}} part of the 
{{lock}} part of the header.

 



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

Reply via email to