Re: Preventing abort() and exit() calls in libpq

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz>, Jacob Champion <pchampion(at)vmware(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Daniel Gustafsson <daniel(at)yesql(dot)se>, info(at)cspug(dot)cz
Subject: Re: Preventing abort() and exit() calls in libpq
Date: 2021-07-09 14:06:18
Message-ID: 2093118.1625839578@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Noah Misch <noah(at)leadboat(dot)com> writes:
> On Sat, Jul 03, 2021 at 06:44:20PM -0400, Tom Lane wrote:
>> That'd require buildfarm owner intervention, as well as intervention
>> by users. Which seems like exporting our problems onto them. I'd
>> really rather not go that way if we can avoid it.

> I like that goal, though we'll have to see how difficult it proves. As of
> today, a GNU/Linux user building against static OpenLDAP will get a failure,
> right? That would export work onto that user, spuriously.

As a former packager for Red Hat, my response would be "you're doing it
wrong". Nobody on any Linux distro should *ever* statically link code
from one package into code from another, because they are going to create
untold pain for themselves when (not if) the first package is updated.
So I flat out reject that as a valid use-case.

It may be that that ethos is not so strongly baked-in on other platforms.
But I'm content to wait and see if there are complaints before rescinding
the automatic test; and if there are, I'd prefer to deal with it by just
backing off to running the test on Linux only.

> We'd get something like 95% of the value by running the test on one Windows
> buildfarm member and one non-Windows buildfarm member.

True. But that just brings up the point that we aren't running the test
at all on MSVC builds right now. I have no idea how to do that, do you?

> ... A strategy not having either of those drawbacks would be to skip
> the test if libpq.so contains a definition of libpq_unbind().

I assume you meant some OpenLDAP symbol?

> If any other
> dependency contains exit calls, we'd likewise probe for one symbol of that
> library and skip the test if presence of that symbol reveals static linking.
> (That's maintenance-prone in its own way, but a maintenance-free strategy has
> not appeared.)

I'm more worried about the risk of failing to detect problems at all,
in case somebody fat-fingers things in a way that causes the test to
be skipped everywhere.

I'll keep that way in mind if we conclude that the existing way is
unworkable, but so far I don't think it is.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message grd 2021-07-09 14:13:38 Re: Fwd: Grammar railroad diagram
Previous Message Alvaro Herrera 2021-07-09 14:00:34 Re: [CLOBBER_CACHE]Server crashed with segfault 11 while executing clusterdb