Re: logical replication launcher crash on buildfarm - Mailing list pgsql-hackers

From Robert Haas
Subject Re: logical replication launcher crash on buildfarm
Date
Msg-id CA+Tgmoae_obbYapxDhELe852TO1nFGOdVbWiUwa6Gf+ODxjHnQ@mail.gmail.com
Whole thread Raw
In response to Re: logical replication launcher crash on buildfarm  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
Responses Re: logical replication launcher crash on buildfarm  (Petr Jelinek <petr.jelinek@2ndquadrant.com>)
List pgsql-hackers
On Mon, Mar 27, 2017 at 11:20 PM, Petr Jelinek
<petr.jelinek@2ndquadrant.com> wrote:
> On 28/03/17 04:46, Robert Haas wrote:
>> On Mon, Mar 27, 2017 at 10:04 PM, Andres Freund <andres@anarazel.de> wrote:
>>>> Btw now that I look at the code, I guess we'll want to get rid of
>>>> bgw_main completely in HEAD given that we can't guarantee it will be
>>>> valid even for shared_preload_library libraries. For older branches I
>>>> would leave things as they are in this regard as there don't seem to be
>>>> any immediate issue for standard binaries.
>>>
>>> As long as you fix it so culicidae is happy (in 9.6) ;).  I think it's
>>> fine to just introduce bgw_builtin_id or such, and leave the bgw_main
>>> code in place in < HEAD.
>>
>> I wasn't thinking of introducing bgw_builtin_id.  My idea was just
>> along the lines of
>>
>> if (bgw_library_name == NULL && bgw_function_name != NULL)
>> {
>>     if (strcmp(bgw_function_name, "ParallelQueryMain") == 0)
>>        ParallelQueryMain(blah);
>>     else if (strcmp(bgw_function_name, "LogicalReplicationMain") == 0)
>>        LogicalReplicationMain(blah);
>> }
>>
>> I think something like that is certainly better for the back-branches,
>> because it doesn't cause an ABI break.  But I think it would also be
>> fine for master.
>>
>
> I had something slightly more complex like the attached in mind.

Seems broadly reasonable on a quick look, but I think we should leave
bgw_main intact in 9.6.  It may be working for fine for people who
don't care about Windows, and I'd rather not break it gratuitously.
Can we have two patches, one of which converts the internal stuff to
use the new mechanism and a second of which removes bgw_main?  The
second one, at least, also needs to update the documentation.  (A good
practice when removing an identifier is to run 'git grep
thing_i_am_removing' after removing it...)

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



pgsql-hackers by date:

Previous
From: David Steele
Date:
Subject: Re: WIP: [[Parallel] Shared] Hash
Next
From: Tom Lane
Date:
Subject: Re: Today's failures on buildfarm member longfin