BRIN: Handle concurrent desummarization properly
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 12 Aug 2020 19:33:36 +0000 (15:33 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 12 Aug 2020 19:33:36 +0000 (15:33 -0400)
commit1f42d35a1d6144a23602b2c0bc7f97f3046cf890
tree58fc88aa21fc52a479867904e1e1c9657f7cd169
parent3546cf8a7a9dc57e6aa98f5fc1ac5476ad6b99ff
BRIN: Handle concurrent desummarization properly

If a page range is desummarized at just the right time concurrently with
an index walk, BRIN would raise an error indicating index corruption.
This is scary and unhelpful; silently returning that the page range is
not summarized is sufficient reaction.

This bug was introduced by commit 975ad4e602ff as additional protection
against a bug whose actual fix was elsewhere.  Backpatch equally.

Reported-By: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Diagnosed-By: Alexander Lakhin <exclusion@gmail.com>
Discussion: https://postgr.es/m/2588667e-d07d-7e10-74e2-7e1e46194491@postgrespro.ru
Backpatch: 9.5 - master
src/backend/access/brin/brin_revmap.c