Thread: pgsql: Fix bootstrap.c so that database startup process and bgwriter

pgsql: Fix bootstrap.c so that database startup process and bgwriter

From
tgl@postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Fix bootstrap.c so that database startup process and bgwriter properly release
LWLocks during a panic exit.  This avoids the possible self-deadlock pointed
out by Qingqing Zhou.  Also, I noted that an error during LoadFreeSpaceMap()
or BuildFlatFiles() would result in exit(0) which would leave the postmaster
thinking all is well.  Added a critical section to ensure such errors don't
allow startup to proceed.

Backpatched to 8.1.  The 8.0 code is a bit different and I'm not sure if the
problem exists there; given we've not seen this reported from the field, I'm
going to be conservative about backpatching any further.

Modified Files:
--------------
    pgsql/src/backend/bootstrap:
        bootstrap.c (r1.215 -> r1.216)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/bootstrap/bootstrap.c.diff?r1=1.215&r2=1.216)