From 16f7152e716331a2d9c64eb34459b95d6ef7bc02 Mon Sep 17 00:00:00 2001 From: David Turner Date: Tue, 21 Jun 2022 14:58:12 +0100 Subject: [PATCH] Specify proper port range in InternalTestCluster (#87885) Today nodes started in an `InternalTestCluster` use `transport.port: 0` and `http.port: 0` which selects a port from the ephemeral range. This range is also used by other tests, notably REST tests, and this can lead to collisions and consequent failures when nodes restart. This commit restricts the range of ports using the same algorithm as in `ESTestCase`, avoiding[^1] such collisions. [^1]: technically this isn't quite enough because the ephemeral range on some CI workers overlaps the ranges chosen by `ESTestCase`, but that's a separate issue tracked in #87734 Closes #87448 --- .../main/java/org/elasticsearch/test/InternalTestCluster.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java index 942346a2b7dd6..a0359ecbb1211 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalTestCluster.java @@ -380,8 +380,8 @@ public InternalTestCluster( Builder builder = Settings.builder(); builder.put(Environment.PATH_HOME_SETTING.getKey(), baseDir); builder.put(Environment.PATH_REPO_SETTING.getKey(), baseDir.resolve("repos")); - builder.put(TransportSettings.PORT.getKey(), 0); - builder.put("http.port", 0); + builder.put(TransportSettings.PORT.getKey(), ESTestCase.getPortRange()); + builder.put("http.port", ESTestCase.getPortRange()); if (Strings.hasLength(System.getProperty("tests.es.logger.level"))) { builder.put("logger.level", System.getProperty("tests.es.logger.level")); }