Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system index
Tom Lane <tgl@sss.pgh.pa.us>
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.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/cache/relcache.c | modified | +18 −6 |