pgsql: Remove libpq's use of abort(3) to handle mutex failure cases.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove libpq's use of abort(3) to handle mutex failure cases.
Date: 2021-06-29 15:31:24
Message-ID: E1lyFhs-0008To-Np@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove libpq's use of abort(3) to handle mutex failure cases.

Doing an abort() seems all right in development builds, but not in
production builds of general-purpose libraries. However, the functions
that were doing this lack any way to report a failure back up to their
callers. It seems like we can just get away with ignoring failures in
production builds, since (a) no such failures have been reported in the
dozen years that the code's been like this, and (b) failure to enforce
mutual exclusion during fe-auth.c operations would likely not cause any
problems anyway in most cases. (The OpenSSL callbacks that use this
macro are obsolete, so even less likely to cause interesting problems.)

Possibly a better answer would be to break compatibility of the
pgthreadlock_t callback API, but in the absence of field problem
reports, it doesn't really seem worth the trouble.

Discussion: https://postgr.es/m/3131385.1624746109@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/aaddf6ba09e25878e792f0d15f725370e19396df

Modified Files
--------------
src/interfaces/libpq/fe-connect.c | 11 ++++++++---
src/interfaces/libpq/fe-secure-openssl.c | 9 +++++++--
src/interfaces/libpq/libpq-int.h | 7 -------
3 files changed, 15 insertions(+), 12 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-06-29 15:46:30 pgsql: Add a build-time check that libpq doesn't call exit() or abort()
Previous Message Noah Misch 2021-06-29 07:46:33 pgsql: Remove literal backslash from Perl \Q ... \E.