Fix mishandling of background worker PGPROCs in EXEC_BACKEND builds.
authorRobert Haas <rhaas@postgresql.org>
Wed, 30 Jul 2014 15:25:58 +0000 (11:25 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 30 Jul 2014 16:10:20 +0000 (12:10 -0400)
commit05c0059b3573a0423370d98789b5f292fb296041
treea023dbc9ae648e38116c5ee10e344c567fe73f94
parenta2a718b2231a84bc120c4c81d12c9350ad78e3d4
Fix mishandling of background worker PGPROCs in EXEC_BACKEND builds.

InitProcess() relies on IsBackgroundWorker to decide whether the PGPROC
for a new backend should be taken from ProcGlobal's freeProcs or from
bgworkerFreeProcs.  In EXEC_BACKEND builds, InitProcess() is called
sooner than in non-EXEC_BACKEND builds, and IsBackgroundWorker wasn't
getting initialized soon enough.

Report by Noah Misch.  Diagnosis and fix by me.
src/backend/postmaster/postmaster.c