aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiko Sawada <msawada@postgresql.org>2023-09-08 22:50:56 +0900
committerMasahiko Sawada <msawada@postgresql.org>2023-09-08 22:50:56 +0900
commit1b95c8d85fa66c0ef63591b8064b023872a8f43c (patch)
treecc1e0e3aa89a115d1f88c0a706e9890f8d117206
parentbae47d78673e42bc203bc5a8172e058f1c5bb548 (diff)
downloadpostgresql-1b95c8d85fa66c0ef63591b8064b023872a8f43c.tar.gz
postgresql-1b95c8d85fa66c0ef63591b8064b023872a8f43c.zip
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 0bcda006cd7..a033588008f 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')));