From: Noah Misch <noah@leadboat.com>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: WAL-log inplace update before revealing it to other sessions.
Date: Fri, 25 Oct 2024 13:51:48 +0000
Message-ID: <E1t4KjF-002OMf-3t@gemulon.postgresql.org> (raw)
WAL-log inplace update before revealing it to other sessions.
A buffer lock won't stop a reader having already checked tuple
visibility. If a vac_update_datfrozenid() and then a crash happened
during inplace update of a relfrozenxid value, datfrozenxid could
overtake relfrozenxid. That could lead to "could not access status of
transaction" errors. Back-patch to v12 (all supported versions). In
v14 and earlier, this also back-patches the assertion removal from
commit 7fcf2faf9c7dd473208fd6d5565f88d7f733782b.
Discussion: https://postgr.es/m/20240620012908.92.nmisch@google.com
Branch
------
REL_17_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/bfd5c6e279c8e1702eea882439dc7ebdf4d4b3a5
Modified Files
--------------
src/backend/access/heap/README.tuplock | 4 +--
src/backend/access/heap/heapam.c | 58 ++++++++++++++++++++++++++--------
2 files changed, 46 insertions(+), 16 deletions(-)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-committers@postgresql.org
Cc: noah@leadboat.com, pgsql-committers@lists.postgresql.org
Subject: Re: pgsql: WAL-log inplace update before revealing it to other sessions.
In-Reply-To: <E1t4KjF-002OMf-3t@gemulon.postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox