]> granicus.if.org Git - postgresql/commit
Never crash-and-restart for bgworkers without shared memory access.
authorRobert Haas <rhaas@postgresql.org>
Wed, 7 May 2014 17:19:02 +0000 (13:19 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 7 May 2014 17:19:02 +0000 (13:19 -0400)
commite2ce9aa27bf20eff2d991d0267a15ea5f7024cd7
tree5eb08d708daf72b6f8cd3ceac8a069d7f255dced
parent1891b415f0cf45d56f29af423598f8518754d675
Never crash-and-restart for bgworkers without shared memory access.

The motivation for a crash and restart cycle when a backend dies is
that it might have corrupted shared memory on the way down; and we
can't recover reliably except by reinitializing everything.  But that
doesn't apply to processes that don't touch shared memory.  Currently,
there's nothing to prevent a background worker that doesn't request
shared memory access from touching shared memory anyway, but that's a
separate bug.

Previous to this commit, the coding in postmaster.c was inconsistent:
an exit status other than 0 or 1 didn't provoke a crash-and-restart,
but failure to release the postmaster child slot did.  This change
makes those cases consistent.
src/backend/postmaster/postmaster.c