summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiko Sawada <msawada@postgresql.org>2023-09-08 22:50:53 +0900
committerMasahiko Sawada <msawada@postgresql.org>2023-09-08 22:50:53 +0900
commit461a7fad7c670037d5308d043609462e2ff83951 (patch)
tree2aec1169e69053619ee206783c72e34ff6a2faa6
parent87d6e0127acaf5563d22fcc310483f1d960c85c5 (diff)
Stabilize subscription stats test.
The new test added by commit 68a59f9e9 disables the subscription and manually drops the associated replication slot. However, since disabling the subsubscription doesn't wait for a walsender to release the replication slot and exit, pg_drop_replication_slot() could fail. Avoid failure by adding a wait for the replication slot to become inactive. Reported-by: Hou Zhijie, as per buildfarm Reviewed-by: Hou Zhijie Discussion: https://postgr.es/m/OS0PR01MB571682316378379AA34854F694E9A%40OS0PR01MB5716.jpnprd01.prod.outlook.com Backpatch-through: 15
-rw-r--r--src/test/subscription/t/026_stats.pl8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/test/subscription/t/026_stats.pl b/src/test/subscription/t/026_stats.pl
index 4719321e4df..c0242f64067 100644
--- a/src/test/subscription/t/026_stats.pl
+++ b/src/test/subscription/t/026_stats.pl
@@ -285,6 +285,14 @@ is( $node_subscriber->safe_psql(
$db, qq(SELECT pg_stat_have_stats('subscription', 0, $sub2_oid))),
qq(f),
qq(Subscription stats for subscription '$sub2_name' should be removed.));
+
+# Since disabling subscription doesn't wait for walsender to release the replication
+# slot and exit, wait for the slot to become inactive.
+$node_publisher->poll_query_until(
+ $db,
+ qq(SELECT EXISTS (SELECT 1 FROM pg_replication_slots WHERE slot_name = '$sub2_name' AND active_pid IS NULL))
+) or die "slot never became inactive";
+
$node_publisher->safe_psql($db,
qq(SELECT pg_drop_replication_slot('$sub2_name')));