diff --git a/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java b/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java index 8a55624ed3a6e..d91e092e312ee 100644 --- a/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java +++ b/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java @@ -14,15 +14,22 @@ public class Clusters { public static ElasticsearchCluster mixedVersionCluster() { Version oldVersion = Version.fromString(System.getProperty("tests.old_cluster_version")); - return ElasticsearchCluster.local() + var cluster = ElasticsearchCluster.local() .distribution(DistributionType.DEFAULT) .withNode(node -> node.version(oldVersion)) .withNode(node -> node.version(Version.CURRENT)) .withNode(node -> node.version(oldVersion)) .withNode(node -> node.version(Version.CURRENT)) .setting("xpack.security.enabled", "false") - .setting("xpack.license.self_generated.type", "trial") - .setting("cluster.routing.rebalance.enable", "none") // disable relocation until we have retry in ESQL - .build(); + .setting("xpack.license.self_generated.type", "trial"); + if (supportRetryOnShardFailures(oldVersion) == false) { + cluster.setting("cluster.routing.rebalance.enable", "none"); + } + return cluster.build(); + } + + private static boolean supportRetryOnShardFailures(Version version) { + return version.onOrAfter(Version.fromString("9.1.0")) + || (version.onOrAfter(Version.fromString("8.19.0")) && version.before(Version.fromString("9.0.0"))); } } diff --git a/x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java b/x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java index 6a1b9f9d051eb..26e6ec81584cf 100644 --- a/x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java +++ b/x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/Clusters.java @@ -17,17 +17,20 @@ public class Clusters { static final String LOCAL_CLUSTER_NAME = "local_cluster"; public static ElasticsearchCluster remoteCluster() { - return ElasticsearchCluster.local() + Version version = distributionVersion("tests.version.remote_cluster"); + var cluster = ElasticsearchCluster.local() .name(REMOTE_CLUSTER_NAME) .distribution(DistributionType.DEFAULT) - .version(distributionVersion("tests.version.remote_cluster")) + .version(version) .nodes(2) .setting("node.roles", "[data,ingest,master]") .setting("xpack.security.enabled", "false") .setting("xpack.license.self_generated.type", "trial") - .shared(true) - .setting("cluster.routing.rebalance.enable", "none") - .build(); + .shared(true); + if (supportRetryOnShardFailures(version) == false) { + cluster.setting("cluster.routing.rebalance.enable", "none"); + } + return cluster.build(); } public static ElasticsearchCluster localCluster(ElasticsearchCluster remoteCluster) { @@ -35,10 +38,11 @@ public static ElasticsearchCluster localCluster(ElasticsearchCluster remoteClust } public static ElasticsearchCluster localCluster(ElasticsearchCluster remoteCluster, Boolean skipUnavailable) { - return ElasticsearchCluster.local() + Version version = distributionVersion("tests.version.local_cluster"); + var cluster = ElasticsearchCluster.local() .name(LOCAL_CLUSTER_NAME) .distribution(DistributionType.DEFAULT) - .version(distributionVersion("tests.version.local_cluster")) + .version(version) .nodes(2) .setting("xpack.security.enabled", "false") .setting("xpack.license.self_generated.type", "trial") @@ -46,9 +50,11 @@ public static ElasticsearchCluster localCluster(ElasticsearchCluster remoteClust .setting("cluster.remote.remote_cluster.seeds", () -> "\"" + remoteCluster.getTransportEndpoint(0) + "\"") .setting("cluster.remote.connections_per_cluster", "1") .setting("cluster.remote." + REMOTE_CLUSTER_NAME + ".skip_unavailable", skipUnavailable.toString()) - .shared(true) - .setting("cluster.routing.rebalance.enable", "none") - .build(); + .shared(true); + if (supportRetryOnShardFailures(version) == false) { + cluster.setting("cluster.routing.rebalance.enable", "none"); + } + return cluster.build(); } public static org.elasticsearch.Version localClusterVersion() { @@ -65,4 +71,9 @@ private static Version distributionVersion(String key) { final String val = System.getProperty(key); return val != null ? Version.fromString(val) : Version.CURRENT; } + + private static boolean supportRetryOnShardFailures(Version version) { + return version.onOrAfter(Version.fromString("9.1.0")) + || (version.onOrAfter(Version.fromString("8.19.0")) && version.before(Version.fromString("9.0.0"))); + } }