Don't use bgw_main even to specify in-core bgworker entrypoints.
On EXEC_BACKEND builds, this can fail if ASLR is in use.
Backpatch to 9.5. On master, completely remove the bgw_main field
completely, since there is no situation in which it is safe for an
EXEC_BACKEND build. On 9.6 and 9.5, leave the field intact to avoid
breaking things for third-party code that doesn't care about working
under EXEC_BACKEND. Prior to 9.5, there are no in-core bgworker
entrypoints.
Petr Jelinek, reviewed by me.
Discussion: http://postgr.es/m/09d8ad33-4287-a09b-a77f-77f8761adb5e@2ndquadrant.com
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/2113ac4cbb12b815804e8873d761cade9ddf49b9
Modified Files
--------------
doc/src/sgml/bgworker.sgml | 36 ++++---------
src/backend/access/transam/parallel.c | 6 +--
src/backend/postmaster/bgworker.c | 81 +++++++++++++++++++-----------
src/backend/replication/logical/launcher.c | 6 ++-
src/include/access/parallel.h | 2 +
src/include/postmaster/bgworker.h | 5 +-
src/test/modules/test_shm_mq/setup.c | 1 -
src/test/modules/worker_spi/worker_spi.c | 4 +-
8 files changed, 75 insertions(+), 66 deletions(-)