Re: logical replication launcher crash on buildfarm

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Cc: Andres Freund <andres@anarazel.de>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Petr Jelinek <petr@2ndquadrant.com>, Peter Eisentraut <peter_e@gmx.net>
Date: 2017-04-01T01:30:17Z
Lists: pgsql-hackers
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.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Commits

  1. Avoid passing function pointers across process boundaries.

  2. Don't use bgw_main even to specify in-core bgworker entrypoints.