Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system index
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Apr 2008 18:23:19 +0000 (18:23 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 16 Apr 2008 18:23:19 +0000 (18:23 +0000)
commitb34a45ba7dbd273c992f0f2eb61f14cf20d5cc37
tree7e72bafd9b4314b76be1e724e52a801214782cf9
parent1617ac0b59b53cbcab07e40f527464cefd0b5132
Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system index
it is trying to build a relcache entry for.  This is an oversight in my 8.2
patch that tried to ensure we always took a lock on a relation before trying
to build its relcache entry.  The implication is that if someone committed a
reindex of a critical system index at about the same time that some other
backend were starting up without a valid pg_internal.init file, the second one
might PANIC due to not seeing any valid version of the index's pg_class row.
Improbable case, but definitely not impossible.
src/backend/utils/cache/relcache.c