postgresql/src/backend/utils/cache
Tom Lane 715120e7ac When loading critical system indexes into the relcache, ensure we lock the
underlying catalog not only the index itself.  Otherwise, if the cache
load process touches the catalog (which will happen for many though not
all of these indexes), we are locking index before parent table, which can
result in a deadlock against processes that are trying to lock them in the
normal order.  Per today's failure on buildfarm member gothic_moth; it's
surprising the problem hadn't been identified before.

Back-patch to 8.2.  Earlier releases didn't have the issue because they
didn't try to lock these indexes during load (instead assuming that they
couldn't change schema at all during multiuser operation).
2010-01-13 23:07:08 +00:00
..
catcache.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
inval.c During Hot Standby, set DatabasePath correctly during relcache init file 2010-01-09 16:49:27 +00:00
lsyscache.c When estimating the selectivity of an inequality "column > constant" or 2010-01-04 02:44:40 +00:00
Makefile Support ALTER TABLESPACE name SET/RESET ( tablespace_options ). 2010-01-05 21:54:00 +00:00
plancache.c Fix bug #5269: ResetPlanCache mustn't invalidate cached utility statements, 2010-01-13 16:56:56 +00:00
relcache.c When loading critical system indexes into the relcache, ensure we lock the 2010-01-13 23:07:08 +00:00
spccache.c Further fixes for per-tablespace options patch. 2010-01-07 03:53:08 +00:00
syscache.c Support ALTER TABLESPACE name SET/RESET ( tablespace_options ). 2010-01-05 21:54:00 +00:00
ts_cache.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
typcache.c Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00