Fix the test case introduced by commit 8756930190.
authorAmit Kapila <akapila@postgresql.org>
Thu, 8 Sep 2022 04:17:43 +0000 (09:47 +0530)
committerAmit Kapila <akapila@postgresql.org>
Thu, 8 Sep 2022 04:17:43 +0000 (09:47 +0530)
Before dropping a relation, ensure that it has reached a 'ready' state
after initial synchronization.

Author: Vignesh C
Reviewed-By: Amit Kapila
Discussion: https://www.postgresql.org/message-id/CALDaNm0gwjY_4HFxvvty01BOT01q_fJLKQ3pWP9=9orqubhjcQ@mail.gmail.com

src/test/subscription/t/030_origin.pl

index 0a5cc4503bd6a47917b2705b2bf19124d90d76bb..d3b78d4b3e288f72137f1d263bf1a478b69ef441 100644 (file)
@@ -195,7 +195,13 @@ like(
    "Refresh publication when the publisher has subscribed for the new table, but the subscriber-side wants origin = none"
 );
 
-$node_A->wait_for_subscription_sync($node_B, $subname_AB2);
+# Ensure that relation has reached 'ready' state before we try to drop it
+my $synced_query =
+  "SELECT count(1) = 0 FROM pg_subscription_rel WHERE srsubstate NOT IN ('r');";
+$node_A->poll_query_until('postgres', $synced_query)
+  or die "Timed out while waiting for subscriber to synchronize data";
+
+$node_B->wait_for_catchup($subname_AB2);
 
 # clear the operations done by this test
 $node_A->safe_psql('postgres', "DROP TABLE tab_new");