BRIN: Handle concurrent desummarization properly

Alvaro Herrera <alvherre@alvh.no-ip.org>

Commit: ce3a8fde8e62c62c29e4342ad32b07b2bbf33b64
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2020-08-12T19:33:36Z
Releases: 9.5.24
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

Files

PathChange+/−
src/backend/access/brin/brin_revmap.c modified +10 −3

Discussion