On Mon, Jul 25, 2016 at 2:52 PM, Michael Paquier <michael.paqu...@gmail.com> wrote: > Ah, yes, and that's a stupid mistake. We had better use > replay_location instead of write_location. There is a risk that > records have not been replayed yet even if they have been written on > the standby, so it is possible that the query looking at tab_int may > not see this relation.
Or in short, the attached fixes 2) and will help providing input for 1).. -- Michael
diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index 6c33936..4b301d0 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -47,7 +47,7 @@ print CONF "wal_level = replica\n"; close CONF; $node->restart; -$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backup" ], +$node->command_ok([ 'pg_basebackup', '--verbose', '-D', "$tempdir/backup" ], 'pg_basebackup runs'); ok(-f "$tempdir/backup/PG_VERSION", 'backup was created'); @@ -57,13 +57,14 @@ is_deeply( 'no WAL files copied'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backup2", '--xlogdir', + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backup2", '--xlogdir', "$tempdir/xlog2" ], 'separate xlog directory'); ok(-f "$tempdir/backup2/PG_VERSION", 'backup was created'); ok(-d "$tempdir/xlog2/", 'xlog directory was created'); -$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/tarbackup", '-Ft' ], +$node->command_ok( + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/tarbackup", '-Ft' ], 'tar format'); ok(-f "$tempdir/tarbackup/base.tar", 'backup tar was created'); @@ -116,7 +117,8 @@ SKIP: "CREATE TABLESPACE tblspc1 LOCATION '$shorter_tempdir/tblspc1';"); $node->safe_psql('postgres', "CREATE TABLE test1 (a int) TABLESPACE tblspc1;"); - $node->command_ok([ 'pg_basebackup', '-D', "$tempdir/tarbackup2", '-Ft' ], + $node->command_ok( + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/tarbackup2", '-Ft' ], 'tar format with tablespaces'); ok(-f "$tempdir/tarbackup2/base.tar", 'backup tar was created'); my @tblspc_tars = glob "$tempdir/tarbackup2/[0-9]*.tar"; @@ -127,7 +129,7 @@ SKIP: 'plain format with tablespaces fails without tablespace mapping'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backup1", '-Fp', + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backup1", '-Fp', "-T$shorter_tempdir/tblspc1=$tempdir/tbackup/tblspc1" ], 'plain format with tablespaces succeeds with tablespace mapping'); ok(-d "$tempdir/tbackup/tblspc1", 'tablespace was relocated'); @@ -146,7 +148,7 @@ SKIP: $node->safe_psql('postgres', "CREATE TABLESPACE tblspc2 LOCATION '$shorter_tempdir/tbl=spc2';"); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backup3", '-Fp', + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backup3", '-Fp', "-T$shorter_tempdir/tbl\\=spc2=$tempdir/tbackup/tbl\\=spc2" ], 'mapping tablespace with = sign in path'); ok(-d "$tempdir/tbackup/tbl=spc2", @@ -157,12 +159,13 @@ SKIP: $node->safe_psql('postgres', "CREATE TABLESPACE tblspc3 LOCATION '$tempdir/$superlongname';"); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/tarbackup_l3", '-Ft' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/tarbackup_l3", '-Ft' ], 'pg_basebackup tar with long symlink target'); $node->safe_psql('postgres', "DROP TABLESPACE tblspc3;"); } -$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backupR", '-R' ], +$node->command_ok( + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backupR", '-R' ], 'pg_basebackup -R runs'); ok(-f "$tempdir/backupR/recovery.conf", 'recovery.conf was created'); my $recovery_conf = slurp_file "$tempdir/backupR/recovery.conf"; @@ -180,18 +183,19 @@ like( 'recovery.conf sets primary_conninfo'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backupxf", '-X', 'fetch' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backupxf", '-X', 'fetch' ], 'pg_basebackup -X fetch runs'); ok(grep(/^[0-9A-F]{24}$/, slurp_dir("$tempdir/backupxf/pg_xlog")), 'WAL files copied'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backupxs", '-X', 'stream' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backupxs", '-X', + 'stream' ], 'pg_basebackup -X stream runs'); ok(grep(/^[0-9A-F]{24}$/, slurp_dir("$tempdir/backupxf/pg_xlog")), 'WAL files copied'); $node->command_fails( - [ 'pg_basebackup', '-D', "$tempdir/fail", '-S', 'slot1' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/fail", '-S', 'slot1' ], 'pg_basebackup with replication slot fails without -X stream'); $node->command_fails( [ 'pg_basebackup', '-D', @@ -207,8 +211,8 @@ my $lsn = $node->safe_psql('postgres', ); is($lsn, '', 'restart LSN of new slot is null'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backupxs_sl", '-X', - 'stream', '-S', 'slot1' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backupxs_sl", '-X', + 'stream', '-S', 'slot1' ], 'pg_basebackup -X stream with replication slot runs'); $lsn = $node->safe_psql('postgres', q{SELECT restart_lsn FROM pg_replication_slots WHERE slot_name = 'slot1'} @@ -216,8 +220,8 @@ $lsn = $node->safe_psql('postgres', like($lsn, qr!^0/[0-9A-Z]{7,8}$!, 'restart LSN of slot has advanced'); $node->command_ok( - [ 'pg_basebackup', '-D', "$tempdir/backupxs_sl_R", '-X', - 'stream', '-S', 'slot1', '-R' ], + [ 'pg_basebackup', '--verbose', '-D', "$tempdir/backupxs_sl_R", '-X', + 'stream', '-S', 'slot1', '-R' ], 'pg_basebackup with replication slot and -R runs'); like( slurp_file("$tempdir/backupxs_sl_R/recovery.conf"), diff --git a/src/test/recovery/t/001_stream_rep.pl b/src/test/recovery/t/001_stream_rep.pl index 7b42f21..e707d94 100644 --- a/src/test/recovery/t/001_stream_rep.pl +++ b/src/test/recovery/t/001_stream_rep.pl @@ -38,11 +38,11 @@ $node_master->safe_psql('postgres', my $applname_1 = $node_standby_1->name; my $applname_2 = $node_standby_2->name; my $caughtup_query = -"SELECT pg_current_xlog_location() <= write_location FROM pg_stat_replication WHERE application_name = '$applname_1';"; +"SELECT pg_current_xlog_location() <= replay_location FROM pg_stat_replication WHERE application_name = '$applname_1';"; $node_master->poll_query_until('postgres', $caughtup_query) or die "Timed out while waiting for standby 1 to catch up"; $caughtup_query = -"SELECT pg_last_xlog_replay_location() <= write_location FROM pg_stat_replication WHERE application_name = '$applname_2';"; +"SELECT pg_last_xlog_replay_location() <= replay_location FROM pg_stat_replication WHERE application_name = '$applname_2';"; $node_standby_1->poll_query_until('postgres', $caughtup_query) or die "Timed out while waiting for standby 2 to catch up";
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers