aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2024-04-10 08:44:17 +0530
committerAmit Kapila <akapila@postgresql.org>2024-04-10 08:44:17 +0530
commit7e85d1c75f299b0772fbeb145706e019629530bd (patch)
treefc8e04c825cb8213c43dd62e664671451ce52269
parent53c8d6c9f157f2bc8211b8de02417e55fefddbc7 (diff)
downloadpostgresql-7e85d1c75f299b0772fbeb145706e019629530bd.tar.gz
postgresql-7e85d1c75f299b0772fbeb145706e019629530bd.zip
Fix a test in failover slots regression test.
Wait for the standby to catch up before syncing the slots with pg_sync_replication_slots(), otherwise, the logical slot could be ahead and the sync would fail. The other way to fix the test is to change it to use slotsync worker and poll for the sync to get finished but the current approach is better as this is a predictable way to write the test. Per buildfarm Author: Hou Zhijie Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/OS0PR01MB571665359F2F5DCD3ADABC9F94002@OS0PR01MB5716.jpnprd01.prod.outlook.com
-rw-r--r--src/test/recovery/t/040_standby_failover_slots_sync.pl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/test/recovery/t/040_standby_failover_slots_sync.pl b/src/test/recovery/t/040_standby_failover_slots_sync.pl
index 048aef10176..76545e3c74a 100644
--- a/src/test/recovery/t/040_standby_failover_slots_sync.pl
+++ b/src/test/recovery/t/040_standby_failover_slots_sync.pl
@@ -400,6 +400,10 @@ $primary->safe_psql('postgres',
"SELECT pg_create_logical_replication_slot('snap_test_slot', 'test_decoding', false, false, true);"
);
+# Wait for the standby to catch up so that the standby is not lagging behind
+# the failover slots.
+$primary->wait_for_replay_catchup($standby1);
+
$standby1->safe_psql('postgres', "SELECT pg_sync_replication_slots();");
# Two xl_running_xacts logs are generated here. When decoding the first log, it
@@ -420,8 +424,6 @@ $primary->safe_psql(
COMMIT;
));
-$primary->wait_for_replay_catchup($standby1);
-
# Advance the restart_lsn to the position of the first xl_running_xacts log
# generated above. Note that there might be concurrent xl_running_xacts logs
# written by the bgwriter, which could cause the position to be advanced to an
@@ -431,6 +433,10 @@ $primary->safe_psql('postgres',
"SELECT pg_replication_slot_advance('snap_test_slot', pg_current_wal_lsn());"
);
+# Wait for the standby to catch up so that the standby is not lagging behind
+# the failover slots.
+$primary->wait_for_replay_catchup($standby1);
+
# Log a message that will be consumed on the standby after promotion using the
# synced slot. See the test where we promote standby (Promote the standby1 to
# primary.)