Обсуждение: BUG #19002: `pg_isready` unexpectedly succeeds on incorrect `--dbname` and/or `--username`

Поиск
Список
Период
Сортировка

BUG #19002: `pg_isready` unexpectedly succeeds on incorrect `--dbname` and/or `--username`

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      19002
Logged by:          Samuel Marks
Email address:      samuelmarks@gmail.com
PostgreSQL version: 17.5
Operating system:   macOS
Description:

```
/  > pg_isready -U fff
/tmp:5432 - accepting connections
/  > pg_isready -U fff -d555
/tmp:5432 - accepting connections
```

(`fff` is not a user and `555` is not a db on my installation)


Re: BUG #19002: `pg_isready` unexpectedly succeeds on incorrect `--dbname` and/or `--username`

От
Jacob Champion
Дата:
On Tue, Jul 29, 2025 at 12:45 PM PG Bug reporting form
<noreply@postgresql.org> wrote:
> /  > pg_isready -U fff
> /tmp:5432 - accepting connections
> /  > pg_isready -U fff -d555
> /tmp:5432 - accepting connections
> ```
>
> (`fff` is not a user and `555` is not a db on my installation)

Hi Samuel, this behavior is explained in the docs [1]:

> It is not necessary to supply correct user name, password, or database name values to obtain the server status;
however,if incorrect values are provided, the server will log a failed connection attempt. 

So it's essentially just a courtesy to whoever's watching your logs.

--Jacob

[1] https://www.postgresql.org/docs/current/app-pg-isready.html#APP-PG-ISREADY-NOTES



Re: BUG #19002: `pg_isready` unexpectedly succeeds on incorrect `--dbname` and/or `--username`

От
Samuel Marks
Дата:
Hmm I suppose that works, but really I was using it as a "can i connect" check. Similar to https://github.com/eficode/wait-for or https://github.com/wait4x/wait4x

It seems weird—unexpected to user—to accept dbname or user and not have a non-zero exit code or something in stderr indicating failure…


On Tue, Jul 29, 2025 at 2:54 PM Jacob Champion <jacob.champion@enterprisedb.com> wrote:
On Tue, Jul 29, 2025 at 12:45 PM PG Bug reporting form
<noreply@postgresql.org> wrote:
> /  > pg_isready -U fff
> /tmp:5432 - accepting connections
> /  > pg_isready -U fff -d555
> /tmp:5432 - accepting connections
> ```
>
> (`fff` is not a user and `555` is not a db on my installation)

Hi Samuel, this behavior is explained in the docs [1]:

> It is not necessary to supply correct user name, password, or database name values to obtain the server status; however, if incorrect values are provided, the server will log a failed connection attempt.

So it's essentially just a courtesy to whoever's watching your logs.

--Jacob

[1] https://www.postgresql.org/docs/current/app-pg-isready.html#APP-PG-ISREADY-NOTES
Samuel Marks <samuelmarks@gmail.com> writes:
> Hmm I suppose that works, but really I was using it as a "can i connect"
> check.

That's explicitly not its job.  Why don't you just try to connect?
Or if you want a command-line tool, consider

    psql ...connection options... -c 'select 1'

            regards, tom lane