Thread: pgsql-server/src/backend/access/transam xact.c

pgsql-server/src/backend/access/transam xact.c

From
tgl@postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@postgresql.org    02/10/22 18:44:37

Modified files:
    src/backend/access/transam: xact.c

Log message:
    Perform transaction cleanup operations in a less ad-hoc, more
    principled order; in particular ensure that all shared resources
    are released before we release transaction locks.  The code used
    to release locks before buffer pins, which might explain an ancient
    note I have about a bufmgr assertion failure I'd seen once several
    years ago, and been unable to reproduce since.  (Theory: someone
    trying to drop a relation might be able to reach FlushRelationBuffers
    before the last user of the relation had gotten around to dropping
    his buffer pins.)