mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
Use pg_ctl promote -w in TAP tests
Switch TAP tests to use the new wait mode of pg_ctl promote. This allows avoiding extra logic with poll_query_until() to be sure that a promoted standby is ready for read-write queries. From: Michael Paquier <michael.paquier@gmail.com>
This commit is contained in:
parent
5d58c07a44
commit
e5a9bcb529
@ -161,12 +161,8 @@ sub promote_standby
|
|||||||
or die "Timed out while waiting for standby to receive and write WAL";
|
or die "Timed out while waiting for standby to receive and write WAL";
|
||||||
|
|
||||||
# Now promote slave and insert some new data on master, this will put
|
# Now promote slave and insert some new data on master, this will put
|
||||||
# the master out-of-sync with the standby. Wait until the standby is
|
# the master out-of-sync with the standby.
|
||||||
# out of recovery mode, and is ready to accept read-write connections.
|
|
||||||
$node_standby->promote;
|
$node_standby->promote;
|
||||||
$node_standby->poll_query_until('postgres',
|
|
||||||
"SELECT NOT pg_is_in_recovery()")
|
|
||||||
or die "Timed out while waiting for promotion of standby";
|
|
||||||
|
|
||||||
# Force a checkpoint after the promotion. pg_rewind looks at the control
|
# Force a checkpoint after the promotion. pg_rewind looks at the control
|
||||||
# file to determine what timeline the server is on, and that isn't updated
|
# file to determine what timeline the server is on, and that isn't updated
|
||||||
|
@ -723,7 +723,7 @@ sub restart
|
|||||||
|
|
||||||
=item $node->promote()
|
=item $node->promote()
|
||||||
|
|
||||||
Wrapper for pg_ctl promote
|
Wrapper for pg_ctl promote -w
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
@ -735,7 +735,8 @@ sub promote
|
|||||||
my $logfile = $self->logfile;
|
my $logfile = $self->logfile;
|
||||||
my $name = $self->name;
|
my $name = $self->name;
|
||||||
print "### Promoting node \"$name\"\n";
|
print "### Promoting node \"$name\"\n";
|
||||||
TestLib::system_log('pg_ctl', '-D', $pgdata, '-l', $logfile, 'promote');
|
TestLib::system_log('pg_ctl', '-D', $pgdata, '-w', '-l', $logfile,
|
||||||
|
'promote');
|
||||||
}
|
}
|
||||||
|
|
||||||
# Internal routine to enable streaming replication on a standby node.
|
# Internal routine to enable streaming replication on a standby node.
|
||||||
|
@ -57,10 +57,7 @@ recovery_target_timeline='latest'
|
|||||||
$node_standby_2->restart;
|
$node_standby_2->restart;
|
||||||
|
|
||||||
# Insert some data in standby 1 and check its presence in standby 2
|
# Insert some data in standby 1 and check its presence in standby 2
|
||||||
# to ensure that the timeline switch has been done. Standby 1 needs
|
# to ensure that the timeline switch has been done.
|
||||||
# to exit recovery first before moving on with the test.
|
|
||||||
$node_standby_1->poll_query_until('postgres',
|
|
||||||
"SELECT pg_is_in_recovery() <> true");
|
|
||||||
$node_standby_1->safe_psql('postgres',
|
$node_standby_1->safe_psql('postgres',
|
||||||
"INSERT INTO tab_int VALUES (generate_series(1001,2000))");
|
"INSERT INTO tab_int VALUES (generate_series(1001,2000))");
|
||||||
$until_lsn = $node_standby_1->safe_psql('postgres',
|
$until_lsn = $node_standby_1->safe_psql('postgres',
|
||||||
|
Loading…
Reference in New Issue
Block a user