Re: logical replication launcher crash on buildfarm
Petr Jelinek <petr.jelinek@2ndquadrant.com>
From: Petr Jelinek <petr.jelinek@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>, Robert Haas <robertmhaas@gmail.com>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>,
Petr Jelinek <petr@2ndquadrant.com>, Peter Eisentraut <peter_e@gmx.net>
Date: 2017-04-01T02:46:39Z
Lists: pgsql-hackers
On 01/04/17 04:19, Andres Freund wrote: > On 2017-03-31 21:30:17 -0400, Robert Haas wrote: >> On Fri, Mar 31, 2017 at 9:26 PM, Petr Jelinek >> <petr.jelinek@2ndquadrant.com> wrote: >>>> Hmm, I don't know if there's any good reason not to just use strcmp(), >>>> but sure, OK. Committed and back-patched. >>> >>> Hmm culicidae still fails, this time only in parallel worker code. This >>> didn't happen on my machine which is strange. Looking at the code, we >>> are passing the fps->entrypoint as function pointer again so of course >>> it fails. We have some code to load libraries again but even that gets >>> initial entrypoint passed as function pointer >>> (ParallelExtensionTrampoline). I wonder if we'll have to generalize the >>> InternalBGWorkers even more to some kind of internal function name to >>> pointer map and add the parallel entry points there as well. >> >> Argh, I forgot about that. I think we need to use something like >> ParallelExtensionTrampoline all the time, not just for libraries. >> Since effectively, we've determined that postgres itself has the same >> problem. > > I wonder if we shouldn't just introduce a KnownFunctionPointer[] map, > that can be used by various facilities (bgworkers themselves, > parallelism, and probably more coming). Otherwise we'll introduce > mechanisms like 7d8f6986b8 in multiple places. > Yes that's what I meant with what I said above. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Avoid passing function pointers across process boundaries.
- 9c225acf0b97 9.6.3 landed
- 32470825d36d 10.0 landed
-
Don't use bgw_main even to specify in-core bgworker entrypoints.
- 0ef26bb394ab 9.5.7 landed
- 9b6e8d8f86ac 9.6.3 landed
- 2113ac4cbb12 10.0 landed