pgsql: Remove support for background workers without BGWORKER_SHMEM_ACC

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove support for background workers without BGWORKER_SHMEM_ACC
Date: 2021-08-13 12:53:10
Message-ID: E1mEWgQ-0003Ik-LE@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove support for background workers without BGWORKER_SHMEM_ACCESS.

Background workers without shared memory access have been broken on
EXEC_BACKEND / windows builds since shortly after background workers have been
introduced, without that being reported. Clearly they are not commonly used.

The problem is that bgworker startup requires to be attached to shared memory
in EXEC_BACKEND child processes. StartBackgroundWorker() detaches from shared
memory for unconnected workers, but at that point we already have initialized
subsystems referencing shared memory.

Fixing this problem is not entirely trivial, so removing the option to not be
connected to shared memory seems the best way forward. In most use cases the
advantages of being connected to shared memory far outweigh the disadvantages.

As there have been no reports about this issue so far, we have decided that it
is not worth trying to address the problem in the back branches.

Per discussion with Alvaro Herrera, Robert Haas and Tom Lane.

Author: Andres Freund <andres(at)anarazel(dot)de>
Discussion: https://postgr.es/m/20210802065116.j763tz3vz4egqy3w@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/80a8f95b3bca6a80672d1766c928cda34e979112

Modified Files
--------------
doc/src/sgml/bgworker.sgml | 10 ++----
src/backend/postmaster/bgworker.c | 67 ++++++++++++++-----------------------
src/backend/postmaster/postmaster.c | 23 +++++--------
src/include/postmaster/bgworker.h | 1 +
4 files changed, 38 insertions(+), 63 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2021-08-13 15:38:14 pgsql: pg_amcheck: Message style and structuring improvements
Previous Message Andres Freund 2021-08-13 12:47:13 Re: pgsql: Move temporary file cleanup to before_shmem_exit().