Skip to content

Commit 7e85d1c

Browse files
author
Amit Kapila
committed
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
1 parent 53c8d6c commit 7e85d1c

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/test/recovery/t/040_standby_failover_slots_sync.pl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,10 @@
400400
"SELECT pg_create_logical_replication_slot('snap_test_slot', 'test_decoding', false, false, true);"
401401
);
402402

403+
# Wait for the standby to catch up so that the standby is not lagging behind
404+
# the failover slots.
405+
$primary->wait_for_replay_catchup($standby1);
406+
403407
$standby1->safe_psql('postgres', "SELECT pg_sync_replication_slots();");
404408

405409
# Two xl_running_xacts logs are generated here. When decoding the first log, it
@@ -420,8 +424,6 @@
420424
COMMIT;
421425
));
422426

423-
$primary->wait_for_replay_catchup($standby1);
424-
425427
# Advance the restart_lsn to the position of the first xl_running_xacts log
426428
# generated above. Note that there might be concurrent xl_running_xacts logs
427429
# written by the bgwriter, which could cause the position to be advanced to an
@@ -431,6 +433,10 @@
431433
"SELECT pg_replication_slot_advance('snap_test_slot', pg_current_wal_lsn());"
432434
);
433435

436+
# Wait for the standby to catch up so that the standby is not lagging behind
437+
# the failover slots.
438+
$primary->wait_for_replay_catchup($standby1);
439+
434440
# Log a message that will be consumed on the standby after promotion using the
435441
# synced slot. See the test where we promote standby (Promote the standby1 to
436442
# primary.)

0 commit comments

Comments
 (0)