OSDN Git Service

Fix recently-identified PITR recovery hazard: the base backup could contain
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 5 Nov 2006 23:40:31 +0000 (23:40 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 5 Nov 2006 23:40:31 +0000 (23:40 +0000)
commit76d5667ba853092e31cc258c5b45d5bd04e59298
treee9d4873f8fe09835fbab39b40a08b909021adce1
parent48188e1621bb6711e7d092bee48523b18cd80177
Fix recently-identified PITR recovery hazard: the base backup could contain
stale relcache init files (pg_internal.init), and there is no mechanism for
updating them during WAL replay.  Easiest solution is just to delete the init
files at conclusion of startup, and let the first backend started in each
database take care of rebuilding the init file.  Simon Riggs and Tom Lane.

Back-patched to 8.1.  Arguably this should be fixed in 8.0 too, but it would
require significantly more code since 8.0 has no handy startup-time scan of
pg_database to piggyback on.  Manual solution of the problem is possible
in 8.0 (just delete the pg_internal.init files before starting WAL replay),
so that may be a sufficient answer.
src/backend/utils/cache/relcache.c
src/backend/utils/init/flatfiles.c
src/include/utils/relcache.h