Fix intermetent test failure in 028_row_filter.pl.
authorAmit Kapila <akapila@postgresql.org>
Fri, 24 Jun 2022 03:51:24 +0000 (09:21 +0530)
committerAmit Kapila <akapila@postgresql.org>
Fri, 24 Jun 2022 03:51:24 +0000 (09:21 +0530)
The test was not waiting for the subscriber's data synchronization to
happen after refreshing the publication on the subscriber side. This leads
subscriber's apply worker to skip applying the changes on the
corresponding relation which results in a test failure.

Reported-by: Hou Zhijie, as per buildfarm
Author: Hou Zhijie
Reviewed-by: Masahiko Sawada, Amit Kapila
Discussion: https://postgr.es/m/OS0PR01MB5716A69496A8E2F2E155DB8D94B59@OS0PR01MB5716.jpnprd01.prod.outlook.com

src/test/subscription/t/028_row_filter.pl

index 0dc0a6d10f5ed835e934831d40a2c196b1b388d0..b1fb2d7cae4126b7f428be634b704d6ed4775d84 100644 (file)
@@ -620,6 +620,11 @@ $node_subscriber->safe_psql('postgres',
        "TRUNCATE TABLE tab_rowfilter_partitioned");
 $node_subscriber->safe_psql('postgres',
        "ALTER SUBSCRIPTION tap_sub REFRESH PUBLICATION WITH (copy_data = true)");
+
+# wait for table synchronization to finish
+$node_subscriber->poll_query_until('postgres', $synced_query)
+  or die "Timed out while waiting for subscriber to synchronize data";
+
 $node_publisher->safe_psql('postgres',
        "INSERT INTO tab_rowfilter_partitioned (a, b) VALUES(4000, 400),(4001, 401),(4002, 402)"
 );