From e435946a545d2312d71987517936a6f61db23deb Mon Sep 17 00:00:00 2001
From: Potapov Alexander <a.potapov@postgrespro.ru>
Date: Tue, 25 Nov 2025 07:36:29 +0300
Subject: [PATCH] Improve the test src/test/postmaster/t/003_start_stop.pl

Calculate the number of iterations on base of max_connections
and max_wal_senders to be in sync with backend pool size:
    2 * (max_connections + max_wal_senders)
---
 src/test/postmaster/t/003_start_stop.pl | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/test/postmaster/t/003_start_stop.pl b/src/test/postmaster/t/003_start_stop.pl
index 58e7ba6cc42..92ba96a4342 100644
--- a/src/test/postmaster/t/003_start_stop.pl
+++ b/src/test/postmaster/t/003_start_stop.pl
@@ -48,10 +48,17 @@ if (!$node->raw_connect_works())
 
 my @raw_connections = ();
 
-# Open a lot of TCP (or Unix domain socket) connections to use up all
-# the connection slots. Beyond a certain number (roughly 2x
-# max_connections), they will be "dead-end backends".
-for (my $i = 0; $i <= 20; $i++)
+my $max_connections = $node->safe_psql(
+	'postgres', qq{select setting::int max_conn from pg_settings 
+	where name=\$\$max_connections\$\$});
+my $max_wal_senders = $node->safe_psql(
+	'postgres', qq{select setting::int max_conn from pg_settings 
+	where name=\$\$max_wal_senders\$\$});
+my $backend_pool_size = 2 * ($max_connections + $max_wal_senders);
+
+# Open as much as possible TCP (or Unix domain socket) connections to use up all
+# the connection slots. Beyond the backend pool, they will be "dead-end backends".
+for (my $i = 0; $i < $backend_pool_size; $i++)
 {
 	my $sock = $node->raw_connect();
 
-- 
2.40.1

