Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix race in test of pg_switch_wal().
authorNoah Misch <noah@leadboat.com>
Mon, 14 Sep 2020 06:13:44 +0000 (23:13 -0700)
committerNoah Misch <noah@leadboat.com>
Mon, 14 Sep 2020 06:15:08 +0000 (23:15 -0700)
The test failed when something added WAL between pg_switch_wal() and
pg_current_wal_lsn(), seen on buildfarm members hornet and sungazer.
Fix v10, v9.6 and v9.5 by making this code mirror its v13+ counterpart.
v12 and v11 lack a counterpart.

src/test/recovery/t/020_archive_status.pl

index 4f63962959cdc78af98c39504d280513dcc7c9dc..09b9eba7b95dbe8812fdf6d72a0444aa5ca5890b 100644 (file)
@@ -141,12 +141,14 @@ $primary->safe_psql(
    'postgres', q{
    INSERT INTO mine SELECT generate_series(21,30) AS x;
    CHECKPOINT;
-   SELECT pg_switch_xlog();
 });
 
-# Make sure that the standby has caught here.
-my $primary_lsn = $primary->safe_psql('postgres',
-   q{SELECT pg_current_xlog_location()});
+# Switch to a new segment and use the returned LSN to make sure that the
+# standby has caught up to this point.
+my $primary_lsn = $primary->safe_psql(
+   'postgres', q{
+   SELECT pg_switch_xlog();
+});
 $standby1->poll_query_until('postgres',
    qq{ SELECT pg_xlog_location_diff(pg_last_xlog_replay_location(), '$primary_lsn') >= 0 })
   or die "Timed out while waiting for xlog replay";