Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix bug in pg_basebackup -F plain -R.
authorFujii Masao <fujii@postgresql.org>
Wed, 12 Feb 2020 00:08:22 +0000 (09:08 +0900)
committerFujii Masao <fujii@postgresql.org>
Wed, 12 Feb 2020 00:08:22 +0000 (09:08 +0900)
Commit caba97a9d9 changed pg_basebackup -F plain -R so that
it overwrote postgresql.auto.conf in the backup, with new connection
setting. This could cause the existing postgresql.auto.conf settings
in the server to get lost unexpectedly. This is a bug.

This commit fixes the bug by making pg_basebackup -F plain -R
append the connection setting into postgresql.auto.conf in the backup.

Author: Fujii Masao
Reviewed-by: Sergei Kornilov
Discussion: https://postgr.es/m/250dcf2a-94e7-c05e-824a-73cfb38a48a4@oss.nttdata.com

src/fe_utils/recovery_gen.c

index facfb6b1f6a4dd51820604223e2ceefaf34d24fd..46ca20e20b80be50be0b5d613ccd868f22a2b1b0 100644 (file)
@@ -128,7 +128,7 @@ WriteRecoveryConfig(PGconn *pgconn, char *target_dir, PQExpBuffer contents)
    snprintf(filename, MAXPGPATH, "%s/%s", target_dir,
             use_recovery_conf ? "recovery.conf" : "postgresql.auto.conf");
 
-   cf = fopen(filename, use_recovery_conf ? "a" : "w");
+   cf = fopen(filename, use_recovery_conf ? "w" : "a");
    if (cf == NULL)
    {
        pg_log_error("could not open file \"%s\": %m", filename);