BUG #18685: .pgpass is not enabled when running pg_basebackup on PostgreSQL 17.
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: nuko.yokohama@gmail.com
Date: 2024-11-04T07:58:08Z
Lists: pgsql-bugs
The following bug has been logged on the website: Bug reference: 18685 Logged by: Toshi Harada Email address: nuko.yokohama@gmail.com PostgreSQL version: 17.0 Operating system: 4.14.106-97.85.amzn2.x86_64 Description: Write the password for replication connection in the .pgpass file as follows $ cat ~/.pgpass #hostname:port:database:username:password 127.0.0.1:16001:replication:repuser:repuser 127.0.0.1:17001:replication:repuser:repuser $ In PostgreSQL 16, pg_basebackup could be run without prompting for a password. $ ~/pgsql/pgsql-16/bin/pg_basebackup -h 127.0.0.1 -p 16001 -U repuser -P -D /tmp/bkup.dat 23638/23638 kB (100%), 1/1 tablespace $ However, when running pg_basebacup on PostgreSQL 17, the user is prompted for a password even if .pgpass is set. $ ~/pgsql/pgsql-17/bin/pg_basebackup -h 127.0.0.1 -p 17001 -U repuser -P -D /tmp/bkup.dat Password: Also, if the -w option is given, the following error occurs. $ ~/pgsql/pgsql-17/bin/pg_basebackup -h 127.0.0.1 -p 17001 -w -U repuser -P -D /tmp/bkup.dat pg_basebackup: error: connection to server at "127.0.0.1", port 17001 failed: fe_sendauth: no password supplied $ PostgreSQL 16's pg_basebackup does not get this error when the -w option is given, and the password is completed by .pgpass $ ~/pgsql/pgsql-16/bin/pg_basebackup -h 127.0.0.1 -p 16001 -U repuser -w -P -D /tmp/bkup.dat 23638/23638 kB (100%), 1/1 tablespace $ And inexplicably, PostgreSQL 17's pg_basebackup also does not prompt for a password if -d “” is specified, and pg_basebackup can be executed. $ ~/pgsql/pgsql-17/bin/pg_basebackup -h 127.0.0.1 -p 17001 -d "" -U repuser -P -D /tmp/bkup.dat 23663/23663 kB (100%), 1/1 tablespace $ We believe that the difference in behavior of pg_basebackup between PostgreSQL 16 and PostgreSQL 17 when .pgpass is specified is problematic. Best regards.
Commits
-
pg_basebackup, pg_receivewal: fix failure to find password in ~/.pgpass.
- b1008c1f01ff 18.0 landed
- e2a912909308 17.1 landed