In this function:
static bool
test_postmaster_connection(bool do_checkpoint)
This code will never succeed:snprintf(connstr, sizeof(connstr), "dbname=postgres port=%s connect_timeout=5",
portstr);
for (i = 0; i < wait_seconds; i++){ if ((conn = PQconnectdb(connstr)) != NULL && (PQstatus(conn) ==
CONNECTION_OK|| PQconnectionNeedsPassword(conn))) { PQfinish(conn); success = true;
break; }
Because pg_hba.conf has this:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
to allow connections from the local machine.
(A password is not needed to connect, so the code always fails).