• Heikki Linnakangas's avatar
    Fix race condition in GIN posting tree page deletion. · ac4ab97e
    Heikki Linnakangas authored
    If a page is deleted, and reused for something else, just as a search is
    following a rightlink to it from its left sibling, the search would continue
    scanning whatever the new contents of the page are. That could lead to
    incorrect query results, or even something more curious if the page is
    reused for a different kind of a page.
    
    To fix, modify the search algorithm to lock the next page before releasing
    the previous one, and refrain from deleting pages from the leftmost branch
    of the tree.
    
    Add a new Concurrency section to the README, explaining why this works.
    There is a lot more one could say about concurrency in GIN, but that's for
    another patch.
    
    Backpatch to all supported versions.
    ac4ab97e
README 13.3 KB