pgsql: Fix race in SSI interaction with gin fast path.

From: Thomas Munro <tmunro(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix race in SSI interaction with gin fast path.
Date: 2023-07-03 21:59:37
Message-ID: E1qGRa5-001lwE-IR@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix race in SSI interaction with gin fast path.

The ginfast.c code previously checked for conflicts in before locking
the relevant buffer, leaving a window where a RW conflict could be
missed. Re-order.

There was also a place where buffer ID and block number were confused
while trying to predicate-lock a page, noted by visual inspection.

Back-patch to all supported releases. Fixes one more problem discovered
with the reproducer from bug #17949, in this case when Dmitry tried
other index types.

Reported-by: Artem Anisimov <artem(dot)anisimov(dot)255(at)gmail(dot)com>
Reported-by: Dmitry Dolgov <9erthalion6(at)gmail(dot)com>
Reviewed-by: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Discussion: https://postgr.es/m/17949-a0f17035294a55e2%40postgresql.org

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/255a925d333be9a3d6314e2fe698063eb8e753a6

Modified Files
--------------
src/backend/access/gin/ginfast.c | 9 +++++++--
src/backend/access/gin/ginget.c | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Thomas Munro 2023-07-03 21:59:56 pgsql: Fix race in SSI interaction with gin fast path.
Previous Message Thomas Munro 2023-07-03 21:59:22 pgsql: Fix race in SSI interaction with bitmap heap scan.