v1-0001-Minor-cleanup-related-to-pg_wal_replay_wait-proce.patch
application/octet-stream
Filename: v1-0001-Minor-cleanup-related-to-pg_wal_replay_wait-proce.patch
Type: application/octet-stream
Part: 1
Patch
Format: format-patch
Series: patch v1-0001
Subject: Minor cleanup related to pg_wal_replay_wait() procedure
| File | + | − |
|---|---|---|
| src/backend/commands/waitlsn.c | 2 | 2 |
| src/test/recovery/t/043_wal_replay_wait.pl | 23 | 24 |
From 0ba59157a6946f3dc4b2119f90051ec6f48ce5d0 Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon, 16 Sep 2024 21:30:15 +0300
Subject: [PATCH v1 1/2] Minor cleanup related to pg_wal_replay_wait()
procedure
* Rename $node_standby1 to $node_standby in 043_wal_replay_wait.pl as there
is only one standby.
* Remove useless debug printing in 043_wal_replay_wait.pl.
* Fix typo in one check description in 043_wal_replay_wait.pl.
* Fix couple of wordings in waitlsn.c comments.
Reported-by: Alexander Lakhin
Discussion: https://postgr.es/m/1d7b08f2-64a2-77fb-c666-c9a74c68eeda%40gmail.com
---
src/backend/commands/waitlsn.c | 4 +-
src/test/recovery/t/043_wal_replay_wait.pl | 47 +++++++++++-----------
2 files changed, 25 insertions(+), 26 deletions(-)
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..b4801635d53 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,25 @@ 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');
+ '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
--
2.39.3 (Apple Git-146)