• Tom Lane's avatar
    Be sure to release proc->backendLock after SetupLockInTable() failure. · 8b151558
    Tom Lane authored
    The various places that transferred fast-path locks to the main lock table
    neglected to release the PGPROC's backendLock if SetupLockInTable failed
    due to being out of shared memory.  In most cases this is no big deal since
    ensuing error cleanup would release all held LWLocks anyway.  But there are
    some hot-standby functions that don't consider failure of
    FastPathTransferRelationLocks to be a hard error, and in those cases this
    oversight could lead to system lockup.  For consistency, make all of these
    places look the same as FastPathTransferRelationLocks.
    
    Noted while looking for the cause of Dan Wood's bugs --- this wasn't it,
    but it's a bug anyway.
    8b151558
lock.c 120 KB