I revised parts of heap_convert.c's conversion from 32-bit to 64-bit pages.
Previously, we used a deferred full-page write to the converted pages to reduce the impact on WAL. Leaving some converted pages in RAM memory. This, however, may cause the incoming autovacuum (AV) to clean transaction statuses for some pages depending on their XIDs. As a result, we risk losing transaction statuses and encountering problems like "could not open file pg_xact/...".
So I decided to abandon the delayed FPW of converted pages, as this write is purely a one-time issue on the first read of the data after the 64-bit upgrade.
On Tue, 15 Jul 2025 at 09:23, Maxim Orlov <orlovmg@gmail.com> wrote:
Rebase @ f5a987c0e5f6bbf0
Main conflicts were:
62a17a9283 Integrate FullTransactionIds deeper into two-phase code 2633dae2e4 Standardize LSN formatting by zero padding
Also, no setting XLOG_HEAP_INIT_PAGE on empty page as discussed above added.