• Heikki Linnakangas's avatar
    Don't call PageGetSpecialPointer() on page until it's been initialized. · fdf28853
    Heikki Linnakangas authored
    After calling XLogInitBufferForRedo(), the page might be all-zeros if it was
    not in page cache already. btree_xlog_unlink_page initialized the page
    correctly, but it called PageGetSpecialPointer before initializing it, which
    would lead to a corrupt page at WAL replay, if the unlinked page is not in
    page cache.
    
    Backpatch to 9.4, the bug came with the rewrite of B-tree page deletion.
    fdf28853
nbtxlog.c 29.5 KB