• Robert Haas's avatar
    Fix two more bugs in fast-path relation locking. · 07ab1383
    Robert Haas authored
    First, the previous code failed to account for the fact that, during Hot
    Standby operation, the startup process takes AccessExclusiveLocks on
    relations without setting MyDatabaseId.  This resulted in fast path
    strong lock counts failing to be incremented with the startup process
    took locks, which in turn allowed conflicting lock requests to succeed
    when they should not have.  Report by Erik Rijkers, diagnosis by Heikki
    Linnakangas.
    
    Second, LockReleaseAll() failed to honor the allLocks and lockmethodid
    restrictions with respect to fast-path locks.  It's not clear to me
    whether this produces any user-visible breakage at the moment, but it's
    certainly wrong.  Rearrange order of operations in LockReleaseAll to fix.
    Noted by Tom Lane.
    07ab1383
lock.c 113 KB