From ee4d71362d092943da3d38bbff5956d785c6b758 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Thu, 01 Oct 2026 13:42:47 +0000
Subject: [PATCH] [#1144] Widen the ephemeral port range before the benchmark runs (#1145)

---
 .github/benchmark/compare-opendj.sh |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/.github/benchmark/compare-opendj.sh b/.github/benchmark/compare-opendj.sh
index e8321f1..cadb47f 100644
--- a/.github/benchmark/compare-opendj.sh
+++ b/.github/benchmark/compare-opendj.sh
@@ -50,6 +50,14 @@
   tar -xzf /tmp/jmeter.tgz -C "$HOME/jmeter"
 fi
 
+# ---------------------------------------------------------------- ephemeral ports
+# BIND opens a new connection per iteration (~500/s), and docker-proxy relays each one to the
+# container over a second connection from an ephemeral port. With the default range
+# (32768-60999) and 60 s of TIME_WAIT that leg runs out of ports within a minute, and BIND then
+# fails with "LDAP connection has been closed". Widen the range and let connect() reuse
+# TIME_WAIT ports.
+sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535" net.ipv4.tcp_tw_reuse=1
+
 # Poll OpenDJ readiness on localhost:1389. An image with a HEALTHCHECK has to report healthy
 # first: on a first start the server the bootstrap started answers, then is stopped and
 # started again, and a request sent in between fails. An older image's health check

--
Gitblit v1.10.0