Make 009_twophase.pl test pass with recovery_min_apply_delay set
authorHeikki Linnakangas
Mon, 16 Dec 2024 13:56:38 +0000 (15:56 +0200)
committerHeikki Linnakangas
Mon, 16 Dec 2024 13:59:38 +0000 (15:59 +0200)
The test failed if you ran the regression tests with TEMP_CONFIG with
recovery_min_apply_delay = '500ms'. Fix the race condition by waiting
for transaction to be applied in the replica, like in a few other
tests.

The failing test was introduced in commit cbfbda7841. Backpatch to all
supported versions like that commit (except v12, which is no longer
supported).

Reported-by: Alexander Lakhin
Discussion: https://www.postgresql.org/message-id/09e2a70a-a6c2-4b5c-aeae-040a7449c9f2@gmail.com

src/test/recovery/t/009_twophase.pl

index b280add10efef447c85ffc6bc7ef5eead1786549..15bb28627f9bb9c0a6279457fbb5189a5e62dbb0 100644 (file)
@@ -312,6 +312,7 @@ $cur_master->psql('postgres', "COMMIT PREPARED 'xact_009_12'");
 
 $cur_master->psql(
    'postgres', "
+   SET synchronous_commit='remote_apply'; -- To ensure the standby is caught up
    CREATE TABLE t_009_tbl_standby_mvcc (id int, msg text);
    BEGIN;
    INSERT INTO t_009_tbl_standby_mvcc VALUES (1, 'issued to ${cur_master_name}');