postgresql/src/backend
Andres Freund 80a8f95b3b 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@anarazel.de>
Discussion: https://postgr.es/m/20210802065116.j763tz3vz4egqy3w@alap3.anarazel.de
2021-08-13 05:49:26 -07:00
..
access Fix grammar mistake in hash index README 2021-08-12 08:53:41 -04:00
bootstrap Fix bogus assertion in BootstrapModeMain(). 2021-08-09 08:28:53 -07:00
catalog Add missing message punctuation 2021-08-06 22:11:28 +02:00
commands Add call to object access hook at the end of table rewrite in ALTER TABLE 2021-08-10 12:21:05 +09:00
executor Use appropriate tuple descriptor in FDW batching 2021-08-12 22:10:06 +02:00
foreign Update copyright for 2021 2021-01-02 13:06:25 -05:00
jit Clarify some comments making use of leetspeak term "up2date" 2021-07-28 10:31:24 +09:00
lib Fix typo in comment 2021-04-20 14:35:16 +02:00
libpq Add more sanity checks in SASL exchanges 2021-07-10 21:45:28 +09:00
main process startup: Centralize pgwin32_signal_initialize() calls. 2021-08-05 12:36:06 -07:00
nodes Check the size in COPY_POINTER_FIELD 2021-08-08 18:46:34 +02:00
optimizer Change NestPath node to contain JoinPath node 2021-08-08 18:46:34 +02:00
parser Don't elide casting to typmod -1. 2021-08-06 17:32:54 -04:00
partitioning Allow ordered partition scans in more cases 2021-08-03 12:25:52 +12:00
po Translation updates 2021-06-21 12:33:50 +02:00
port Make EXEC_BACKEND more convenient on macOS. 2021-08-13 11:09:00 +12:00
postmaster Remove support for background workers without BGWORKER_SHMEM_ACCESS. 2021-08-13 05:49:26 -07:00
regex Avoid determining regexp subexpression matches, when possible. 2021-08-09 11:26:34 -04:00
replication Remove unused argument "txn" in maybe_send_schema(). 2021-08-05 17:49:51 +09:00
rewrite Use l*_node() family of functions where appropriate 2021-07-19 08:20:24 +02:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Error message refactoring 2021-06-27 09:41:16 +02:00
storage Move temporary file cleanup to before_shmem_exit(). 2021-08-07 19:20:47 -07:00
tcop process startup: Always call Init[Auxiliary]Process() before BaseInit(). 2021-08-05 15:36:59 -07:00
tsearch Improve various places that double the size of a buffer 2021-07-01 15:29:06 +12:00
utils Fix typo. 2021-08-13 05:44:03 -07:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Use sort_template.h for qsort_tuple() and qsort_ssup(). 2021-03-03 17:02:32 +13:00
nls.mk Translation updates 2021-05-10 14:36:21 +02:00