Make 009_twophase.pl test pass with recovery_min_apply_delay set
authorHeikki Linnakangas <[email protected]>
Mon, 16 Dec 2024 13:56:38 +0000 (15:56 +0200)
committerHeikki Linnakangas <[email protected]>
Mon, 16 Dec 2024 13:59:34 +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 4e956742e3a25842bcaf713c8e12ac3a4be1869d..ad9b5371dd047805ba8e2b12c8a6672b44e34d27 100644 (file)
@@ -315,6 +315,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}');