]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix --dry-run mode of pg_rewind
authorMichael Paquier <michael@paquier.xyz>
Fri, 4 Oct 2019 00:14:51 +0000 (09:14 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 4 Oct 2019 00:14:51 +0000 (09:14 +0900)
Even if --dry-run mode was specified, the control file was getting
updated, preventing follow-up runs of pg_rewind to work properly on the
target data folder.  The origin of the problem came from the refactoring
done by ce6afc6.

Author: Alexey Kondratov
Discussion: https://postgr.es/m/7ca88204-3e0b-2f4c-c8af-acadc4b266e5@postgrespro.ru
Backpatch-through: 12

src/bin/pg_rewind/pg_rewind.c

index a7fd9e0cabe749827b2a74caedb620d56cd26515..2eb18a92c62ffa85572119d9fea9eb032c256646 100644 (file)
@@ -435,7 +435,8 @@ main(int argc, char **argv)
        ControlFile_new.minRecoveryPoint = endrec;
        ControlFile_new.minRecoveryPointTLI = endtli;
        ControlFile_new.state = DB_IN_ARCHIVE_RECOVERY;
-       update_controlfile(datadir_target, &ControlFile_new, do_sync);
+       if (!dry_run)
+               update_controlfile(datadir_target, &ControlFile_new, do_sync);
 
        if (showprogress)
                pg_log_info("syncing target data directory");