]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix pg_recvlogical avoidance of superfluous Standby Status Update.
authorNoah Misch <noah@leadboat.com>
Thu, 14 May 2020 03:42:09 +0000 (20:42 -0700)
committerNoah Misch <noah@leadboat.com>
Thu, 14 May 2020 03:42:42 +0000 (20:42 -0700)
The defect suppressed a Standby Status Update message when bytes flushed
to disk had changed but bytes received had not changed.  If
pg_recvlogical then exited with no intervening Standby Status Update,
the next pg_recvlogical repeated already-flushed records.  The defect
could also cause superfluous messages, which are functionally harmless.
Back-patch to 9.5 (all supported versions).

Discussion: https://postgr.es/m/20200502221647.GA3941274@rfd.leadboat.com

src/bin/pg_basebackup/pg_recvlogical.c

index a5f90b2d6264a322bf17ee2584d7bbdaab56c79c..adb9f800c71a1b1b57d63692c02f73c2a61b8810 100644 (file)
@@ -127,7 +127,7 @@ sendFeedback(PGconn *conn, TimestampTz now, bool force, bool replyRequested)
         */
        if (!force &&
                last_written_lsn == output_written_lsn &&
-               last_fsync_lsn != output_fsync_lsn)
+               last_fsync_lsn == output_fsync_lsn)
                return true;
 
        if (verbose)