Make 009_twophase.pl test pass with recovery_min_apply_delay set
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 16 Dec 2024 13:56:38 +0000 (15:56 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Mon, 16 Dec 2024 13:59:21 +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 12c2f0e40d145f7a1fd1d7bfb9a03f39fed8c3ea..4b3e0f77dc0de455ff1edff89798b61890479da7 100644 (file)
@@ -319,6 +319,7 @@ $cur_primary->psql('postgres', "COMMIT PREPARED 'xact_009_12'");
 
 $cur_primary->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_primary_name}');