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 <[email protected]> Reviewed-by: Noah Misch <[email protected]> Reviewed-by: Andrey Borodin <[email protected]> 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(-)
