• Tom Lane's avatar
    When loading critical system indexes into the relcache, ensure we lock the · 715120e7
    Tom Lane authored
    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).
    715120e7
relcache.c 134 KB