Avoid passing function pointers across process boundaries.
Tom Lane <tgl@sss.pgh.pa.us>
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: https://postgr.es/m/548f9c1d-eafa-e3fa-9da8-f0cc2f654e60@2ndquadrant.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/transam/parallel.c | modified | +105 −88 |
| src/backend/access/transam/README.parallel | modified | +1 −1 |
| src/backend/executor/execParallel.c | modified | +3 −4 |
| src/backend/postmaster/bgworker.c | modified | +61 −44 |
| src/backend/utils/fmgr/dfmgr.c | modified | +10 −5 |
| src/backend/utils/fmgr/fmgr.c | modified | +1 −1 |
| src/include/access/parallel.h | modified | +1 −3 |
| src/include/executor/execParallel.h | modified | +2 −0 |
| src/include/fmgr.h | modified | +3 −3 |
Discussion
- logical replication launcher crash on buildfarm 41 messages · 2017-03-16 → 2017-04-16