Skip to content

Commit 05c0059

Browse files
committed
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.
1 parent a2a718b commit 05c0059

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/backend/postmaster/postmaster.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4566,6 +4566,9 @@ SubPostmasterMain(int argc, char *argv[])
45664566
{
45674567
int cookie;
45684568

4569+
/* do this as early as possible; in particular, before InitProcess() */
4570+
IsBackgroundWorker = true;
4571+
45694572
/* Close the postmaster's sockets */
45704573
ClosePostmasterPorts(false);
45714574

0 commit comments

Comments
 (0)