pgsql: Uniformly identify the target host in libpq connection failure r - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Uniformly identify the target host in libpq connection failure r
Date
Msg-id E1kz2cL-0006Vf-TS@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Uniformly identify the target host in libpq connection failure reports.

Prefix "could not connect to host-or-socket-path:" to all connection
failure cases that occur after the socket() call, and remove the
ad-hoc server identity data that was appended to a few of these
messages.  This should produce much more intelligible error reports
in multiple-target-host situations, especially for error cases that
are off the beaten track to any degree (because none of those provided
any server identity info).

As an example of the change, formerly a connection attempt with a bad
port number such as "psql -p 12345 -h localhost,/tmp" might produce

psql: error: could not connect to server: Connection refused
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 12345?
could not connect to server: Connection refused
        Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 12345?
could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.12345"?

Now it looks like

psql: error: could not connect to host "localhost" (::1), port 12345: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
could not connect to host "localhost" (127.0.0.1), port 12345: Connection refused
        Is the server running on that host and accepting TCP/IP connections?
could not connect to socket "/tmp/.s.PGSQL.12345": No such file or directory
        Is the server running locally and accepting connections on that socket?

This requires adjusting a couple of regression tests to allow for
variation in the contents of a connection failure message.

Discussion: https://postgr.es/m/BN6PR05MB3492948E4FD76C156E747E8BC9160@BN6PR05MB3492.namprd05.prod.outlook.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/52a10224e3cc1d706ba9800695f97cb163b747d5

Modified Files
--------------
src/bin/pg_dump/t/002_pg_dump.pl                   |   2 +-
.../ecpg/test/expected/connect-test5.stderr        |   4 +-
src/interfaces/libpq/fe-connect.c                  | 121 ++++++++++-----------
3 files changed, 62 insertions(+), 65 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: In libpq, always append new error messages to conn->errorMessage
Next
From: Tom Lane
Date:
Subject: pgsql: Rethink SQLSTATE code for ERRCODE_IDLE_SESSION_TIMEOUT.