summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/test/recovery/t/038_save_logical_slots_shutdown.pl10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/test/recovery/t/038_save_logical_slots_shutdown.pl b/src/test/recovery/t/038_save_logical_slots_shutdown.pl
index 5a4f5dc1d40..2a3bf1f8da9 100644
--- a/src/test/recovery/t/038_save_logical_slots_shutdown.pl
+++ b/src/test/recovery/t/038_save_logical_slots_shutdown.pl
@@ -60,6 +60,12 @@ $node_subscriber->start;
$node_publisher->safe_psql('postgres', "CREATE TABLE test_tbl (id int)");
$node_subscriber->safe_psql('postgres', "CREATE TABLE test_tbl (id int)");
+# To avoid a shutdown checkpoint WAL record (that gets generated as part of
+# the publisher restart below) falling into a new page, advance the WAL
+# segment. Otherwise, the confirmed_flush_lsn and shutdown_checkpoint
+# location won't match.
+$node_publisher->advance_wal(1);
+
# Insert some data
$node_publisher->safe_psql('postgres',
"INSERT INTO test_tbl VALUES (generate_series(1, 5));");
@@ -81,6 +87,10 @@ is($result, qq(5), "check initial copy was done");
my $offset = -s $node_publisher->logfile;
+# Note: Don't insert any data on the publisher that may cause the shutdown
+# checkpoint to fall into a new WAL file. See the comments atop advance_wal()
+# above.
+
# Restart the publisher to ensure that the slot will be flushed if required
$node_publisher->restart();