Re: Preventing abort() and exit() calls in libpq - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Preventing abort() and exit() calls in libpq
Date
Msg-id 2093118.1625839578@sss.pgh.pa.us
Whole thread Raw
In response to Re: Preventing abort() and exit() calls in libpq  (Noah Misch <noah@leadboat.com>)
Responses Re: Preventing abort() and exit() calls in libpq
List pgsql-hackers
Noah Misch <noah@leadboat.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



pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: [CLOBBER_CACHE]Server crashed with segfault 11 while executing clusterdb
Next
From: Tomas Vondra
Date:
Subject: Re: Query about time zone patterns in to_char