As the README for xlog says: There're two kinds of WAL records:
* WAL record that contains enough information to re-generate the entire
contents of a page;

during recovery of these records, blocks are read with:
 buffer = XLogReadBuffer(reln, blkno, true);

so it can be sure that the block will be read successfully, i.e. buffer
won't be InvalidBuffer

* WAL record provides only enough information to incrementally update the

As all blocks related to these xlog records will be backed up in the xlog
during the first write after checkpoint, and RestoreBkpBlocks will also read
it in with :
 buffer = XLogReadBuffer(reln, blkno, true);

so it also can be sure that these blocks will be read successfully: because
the fisrt read of it must be in RestoreBkpBlocks, which will reconstruct the
block validly, and none problems in later read.

Then if we come to the path "log_invalid_page",  can I say there must be sth
wrong, and we should PANIC?

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to