Thread
-
Re: libpq maligning postgres stability
Jelte Fennema-Nio <postgres@jeltef.nl> — 2026-05-26T07:22:07Z
On Thu, 27 Mar 2025 at 16:19, Andres Freund <andres@anarazel.de> wrote: > And we don't even just add this message when the connection was actually > closed unexpectedly, we often do it even when we *did* get a FATAL, as in this > example: > > psql -c 'select pg_terminate_backend(pg_backend_pid())' > FATAL: 57P01: terminating connection due to administrator command > LOCATION: ProcessInterrupts, postgres.c:3351 > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > connection to server was lost > > > I think this one is mostly a weakness in how libpq tracks connection state, > but it kind of shows the silliness of claiming postgres probably crashed. I ran into this for the nth time (this time while trying to have psql handle certain FATAL errors differently). Turns out fixing this is actually really simple. All that's needed is to mark a connection as CONNECTION_BAD whenever a FATAL or PANIC error is received by the client. (this change is intended for PG20)