Fix cfbot failure caused by commit 228c370868.
authorAmit Kapila <akapila@postgresql.org>
Thu, 24 Jul 2025 03:51:55 +0000 (03:51 +0000)
committerAmit Kapila <akapila@postgresql.org>
Thu, 24 Jul 2025 03:51:55 +0000 (03:51 +0000)
Ensure the test waits for the apply worker to exit after disabling the
subscription. This is necessary to safely enable the retain_dead_tuples
option. Also added a similar wait in another part of the test to prevent
unintended apply worker activity that could lead to test failures
post-subscription disable.

Reported by Michael Paquier as per cfbot.

Author: Zhijie Hou <houzj.fnst@fujitsu.com>
Discussion: https://postgr.es/m/aIGLgfRJIBwExoPj@paquier.xyz

src/test/subscription/t/035_conflicts.pl

index 7458d7fba7e9a426218950b6d175b73d0272c3a0..976d53a870e5e8dc639c335c30e7a1bce94315ac 100644 (file)
@@ -228,6 +228,11 @@ ok( $stderr =~
 # Disable the subscription
 $node_A->psql('postgres', "ALTER SUBSCRIPTION $subname_AB DISABLE;");
 
+# Wait for the apply worker to stop
+$node_A->poll_query_until('postgres',
+   "SELECT count(*) = 0 FROM pg_stat_activity WHERE backend_type = 'logical replication apply worker'"
+);
+
 # Enable retain_dead_tuples for disabled subscription
 ($cmdret, $stdout, $stderr) = $node_A->psql('postgres',
    "ALTER SUBSCRIPTION $subname_AB SET (retain_dead_tuples = true);");
@@ -278,6 +283,11 @@ is($result, qq(1|1
 # Disable the logical replication from node B to node A
 $node_A->safe_psql('postgres', "ALTER SUBSCRIPTION $subname_AB DISABLE");
 
+# Wait for the apply worker to stop
+$node_A->poll_query_until('postgres',
+   "SELECT count(*) = 0 FROM pg_stat_activity WHERE backend_type = 'logical replication apply worker'"
+);
+
 $node_B->safe_psql('postgres', "UPDATE tab SET b = 3 WHERE a = 1;");
 $node_A->safe_psql('postgres', "DELETE FROM tab WHERE a = 1;");