During recovery, if we reach consistent state and still have entries in the
invalid-page hash table, PANIC immediately. Immediate PANIC is much better
than waiting for end-of-recovery, which is what we did before, because the
end-of-recovery might not come until months later if this is a standby
server.
Also refrain from creating a restartpoint if there are invalid-page entries
in the hash table. Restarting recovery from such a restartpoint would not
see the invalid references, and wouldn't be able to cross-check them when
consistency is reached. That wouldn't matter when things are going smoothly,
but the more sanity checks you have the better.
Fujii Masao
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/1e616f639156b2431725f7823c999486ca46c1ea
Modified Files
--------------
src/backend/access/transam/xlog.c | 32 ++++++++++++----
src/backend/access/transam/xlogutils.c | 63 ++++++++++++++++++++++----------
src/include/access/xlog.h | 2 +
src/include/access/xlogutils.h | 1 +
4 files changed, 70 insertions(+), 28 deletions(-)