agora inbox for pgsql-committers@postgresql.org  
help / color / mirror / Atom feed
From: Alexander Korotkov <akorotkov@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Say in the FSM README why its hint writes still need full page i
Date: Wed, 16 Sep 2026 10:51:11 +0000
Message-ID: <E1x6nEN-00000000Znc-19oK@gemulon.postgresql.org> (raw)

Say in the FSM README why its hint writes still need full page images

The Recovery section said we would "operate correctly without the full page
images that MarkBufferDirtyHint() provides", offering them only as a way to
lose less slot knowledge to RBM_ZERO_ON_ERROR.  That is true of freespace.c,
which passes RBM_ZERO_ON_ERROR on every read, and false of the system around
it, which reads the same files and does verify checksums.  Reading it as a
licence to dirty FSM pages without a full page image is what led to
c06d1a4ba6b, since reverted.

Say instead that RBM_ZERO_ON_ERROR is a property of this directory rather
than of the fork, and name the readers that do not share it:
RelationCopyStorage(), RelationCopyStorageUsingBuffer(), base backups and
pg_checksums.  Rather than presenting today's behavior as the only one
possible, note that the alternative is for all of that code to skip checksum
validation of the FSM.

Reported-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Noah Misch <noah@leadboat.com>
Reviewed-by: Andrey Borodin <x4mmm@yandex-team.ru>
Discussion: https://postgr.es/m/20260901211837.f6.noahmisch%40microsoft.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/a4f18fd8f2800084304844060fe5564136e6b3e5

Modified Files
--------------
src/backend/storage/freespace/README | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)



Message-ID: <E1x6nEN-00000000Znc-19oK@gemulon.postgresql.org>
Permalink:  ../E1x6nEN-00000000Znc-19oK@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1x6nEN-00000000Znc-19oK@gemulon.postgresql.org

reply

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: akorotkov@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Say in the FSM README why its hint writes still need full page i
  In-Reply-To: <E1x6nEN-00000000Znc-19oK@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 agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox