From d06314f0f315720087ed1d17071104e0a06d9ae6 Mon Sep 17 00:00:00 2001
From: Hou Zhijie <houzj.fnst@cn.fujitsu.com>
Date: Mon, 8 Apr 2024 21:00:18 +0800
Subject: [PATCH] Ensure the standby is not lagging behind the failover slot
 before syncing

---
 src/test/recovery/t/040_standby_failover_slots_sync.pl | 10 ++++++++--
 1 file 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 048aef1017..76545e3c74 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.)
-- 
2.30.0.windows.2

