Skip to content

Pass fork number through rm_mask and stop masking away VM page contents #72

Description

@NikolayS

verifyBackupPageConsistency() calls rm_mask(page, blkno) with no fork number, so heap_mask() is applied to visibility-map pages as if they were heap pages — mask_unused_space() wipes the entire VM bitmap (VM pages store the bitmap inside [pd_lower, pd_upper)), making every wal_consistency_checking VM comparison vacuous. The stale-VM-bit corruption class (ed62d26) is undetectable by design today. Change the rm_mask API to receive the fork number (mechanical across all rmgr *_mask functions), mask VM pages minimally (LSN/checksum only), and evaluate conservatively whether PageClearAllVisible in mask_page_hint_bits is still needed. Verify via 027_stream_regress with wal_consistency_checking=all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions