pgsql: Avoid passing function pointers across process boundaries.
Avoid passing function pointers across process boundaries.
We'd already recognized that we can't pass function pointers across process
boundaries for functions in loadable modules, since a shared library could
get loaded at different addresses in different processes. But actually the
practice doesn't work for functions in the core backend either, if we're
using EXEC_BACKEND. This is the cause of recent failures on buildfarm
member culicidae. Switch to passing a string function name in all cases.
Something like this needs to be back-patched into 9.6, but let's see
if the buildfarm likes it first.
Petr Jelinek, with a bunch of basically-cosmetic adjustments by me
Discussion: /messages/by-id/548f9c1d-eafa-e3fa-9da8-f0cc2f654e60@2ndquadrant.com
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/32470825d36d99a81347ee36c181d609c952c061
Modified Files
--------------
src/backend/access/transam/README.parallel | 2 +-
src/backend/access/transam/parallel.c | 193 ++++++++++++++++-------------
src/backend/executor/execParallel.c | 7 +-
src/backend/postmaster/bgworker.c | 105 +++++++++-------
src/backend/utils/fmgr/dfmgr.c | 15 ++-
src/backend/utils/fmgr/fmgr.c | 2 +-
src/include/access/parallel.h | 4 +-
src/include/executor/execParallel.h | 2 +
src/include/fmgr.h | 6 +-
9 files changed, 187 insertions(+), 149 deletions(-)
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers