diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/transam/xlog.c | 2 | ||||
-rw-r--r-- | src/backend/commands/waitlsn.c | 4 | ||||
-rw-r--r-- | src/test/recovery/t/043_wal_replay_wait.pl | 48 |
3 files changed, 26 insertions, 28 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index e96aa4d1cb1..853ab06812b 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6168,7 +6168,7 @@ StartupXLOG(void) /* * Wake up all waiters for replay LSN. They need to report an error that - * recovery was ended before achieving the target LSN. + * recovery was ended before reaching the target LSN. */ WaitLSNSetLatches(InvalidXLogRecPtr); diff --git a/src/backend/commands/waitlsn.c b/src/backend/commands/waitlsn.c index d7065726749..ffa83a20008 100644 --- a/src/backend/commands/waitlsn.c +++ b/src/backend/commands/waitlsn.c @@ -299,7 +299,7 @@ WaitForLSNReplay(XLogRecPtr targetLSN, int64 timeout) /* * If the timeout value is specified, calculate the number of * milliseconds before the timeout. Exit if the timeout is already - * achieved. + * reached. */ if (timeout > 0) { @@ -325,7 +325,7 @@ WaitForLSNReplay(XLogRecPtr targetLSN, int64 timeout) deleteLSNWaiter(); /* - * If we didn't achieve the target LSN, we must be exited by timeout. + * If we didn't reach the target LSN, we must be exited by timeout. */ if (targetLSN > currentLSN) { diff --git a/src/test/recovery/t/043_wal_replay_wait.pl b/src/test/recovery/t/043_wal_replay_wait.pl index 1234ace1a78..b24033ff36e 100644 --- a/src/test/recovery/t/043_wal_replay_wait.pl +++ b/src/test/recovery/t/043_wal_replay_wait.pl @@ -19,15 +19,15 @@ my $backup_name = 'my_backup'; $node_primary->backup($backup_name); # Create a streaming standby with a 1 second delay from the backup -my $node_standby1 = PostgreSQL::Test::Cluster->new('standby'); +my $node_standby = PostgreSQL::Test::Cluster->new('standby'); my $delay = 1; -$node_standby1->init_from_backup($node_primary, $backup_name, +$node_standby->init_from_backup($node_primary, $backup_name, has_streaming => 1); -$node_standby1->append_conf( +$node_standby->append_conf( 'postgresql.conf', qq[ recovery_min_apply_delay = '${delay}s' ]); -$node_standby1->start; +$node_standby->start; # 1. Make sure that pg_wal_replay_wait() works: add new content to # primary and memorize primary's insert LSN, then wait for that LSN to be @@ -36,7 +36,7 @@ $node_primary->safe_psql('postgres', "INSERT INTO wait_test VALUES (generate_series(11, 20))"); my $lsn1 = $node_primary->safe_psql('postgres', "SELECT pg_current_wal_insert_lsn()"); -my $output = $node_standby1->safe_psql( +my $output = $node_standby->safe_psql( 'postgres', qq[ CALL pg_wal_replay_wait('${lsn1}', 1000000); SELECT pg_lsn_cmp(pg_last_wal_replay_lsn(), '${lsn1}'::pg_lsn); @@ -52,7 +52,7 @@ $node_primary->safe_psql('postgres', "INSERT INTO wait_test VALUES (generate_series(21, 30))"); my $lsn2 = $node_primary->safe_psql('postgres', "SELECT pg_current_wal_insert_lsn()"); -$output = $node_standby1->safe_psql( +$output = $node_standby->safe_psql( 'postgres', qq[ CALL pg_wal_replay_wait('${lsn2}'); SELECT count(*) FROM wait_test; @@ -68,9 +68,9 @@ my $lsn3 = $node_primary->safe_psql('postgres', "SELECT pg_current_wal_insert_lsn() + 10000000000"); my $stderr; -$node_standby1->safe_psql('postgres', +$node_standby->safe_psql('postgres', "CALL pg_wal_replay_wait('${lsn2}', 10);"); -$node_standby1->psql( +$node_standby->psql( 'postgres', "CALL pg_wal_replay_wait('${lsn3}', 1000);", stderr => \$stderr); @@ -88,7 +88,7 @@ $node_primary->psql( ok( $stderr =~ /recovery is not in progress/, "get an error when running on the primary"); -$node_standby1->psql( +$node_standby->psql( 'postgres', "BEGIN ISOLATION LEVEL REPEATABLE READ; CALL pg_wal_replay_wait('${lsn3}');", stderr => \$stderr); @@ -107,8 +107,8 @@ CREATE FUNCTION pg_wal_replay_wait_wrap(target_lsn pg_lsn) RETURNS void AS \$\$ LANGUAGE plpgsql; ]); -$node_primary->wait_for_catchup($node_standby1); -$node_standby1->psql( +$node_primary->wait_for_catchup($node_standby); +$node_standby->psql( 'postgres', "SELECT pg_wal_replay_wait_wrap('${lsn3}');", stderr => \$stderr); @@ -134,17 +134,16 @@ CREATE FUNCTION log_count(i int) RETURNS void AS \$\$ \$\$ LANGUAGE plpgsql; ]); -$node_standby1->safe_psql('postgres', "SELECT pg_wal_replay_pause();"); +$node_standby->safe_psql('postgres', "SELECT pg_wal_replay_pause();"); my @psql_sessions; for (my $i = 0; $i < 5; $i++) { - print($i); $node_primary->safe_psql('postgres', "INSERT INTO wait_test VALUES (${i});"); my $lsn = $node_primary->safe_psql('postgres', "SELECT pg_current_wal_insert_lsn()"); - $psql_sessions[$i] = $node_standby1->background_psql('postgres'); + $psql_sessions[$i] = $node_standby->background_psql('postgres'); $psql_sessions[$i]->query_until( qr/start/, qq[ \\echo start @@ -152,11 +151,11 @@ for (my $i = 0; $i < 5; $i++) SELECT log_count(${i}); ]); } -my $log_offset = -s $node_standby1->logfile; -$node_standby1->safe_psql('postgres', "SELECT pg_wal_replay_resume();"); +my $log_offset = -s $node_standby->logfile; +$node_standby->safe_psql('postgres', "SELECT pg_wal_replay_resume();"); for (my $i = 0; $i < 5; $i++) { - $node_standby1->wait_for_log("count ${i}", $log_offset); + $node_standby->wait_for_log("count ${i}", $log_offset); $psql_sessions[$i]->quit; } @@ -171,25 +170,24 @@ my $lsn4 = "SELECT pg_current_wal_insert_lsn() + 10000000000"); my $lsn5 = $node_primary->safe_psql('postgres', "SELECT pg_current_wal_insert_lsn()"); -my $psql_session = $node_standby1->background_psql('postgres'); +my $psql_session = $node_standby->background_psql('postgres'); $psql_session->query_until( qr/start/, qq[ \\echo start CALL pg_wal_replay_wait('${lsn4}'); ]); -$log_offset = -s $node_standby1->logfile; -$node_standby1->promote; -$node_standby1->wait_for_log('recovery is not in progress', $log_offset); +$log_offset = -s $node_standby->logfile; +$node_standby->promote; +$node_standby->wait_for_log('recovery is not in progress', $log_offset); ok(1, 'got error after standby promote'); -$node_standby1->safe_psql('postgres', "CALL pg_wal_replay_wait('${lsn5}');"); +$node_standby->safe_psql('postgres', "CALL pg_wal_replay_wait('${lsn5}');"); -ok(1, - 'wait for already replayed LSN exists immediately even after promotion'); +ok(1, 'wait for already replayed LSN exits immediately even after promotion'); -$node_standby1->stop; +$node_standby->stop; $node_primary->stop; # If we send \q with $psql_session->quit the command can be sent to the session |