From ca0f209187cc1ff270d0329d12103488f712e7f5 Mon Sep 17 00:00:00 2001 From: Pawan Kartik Date: Mon, 11 Aug 2025 12:55:46 +0100 Subject: [PATCH 1/2] Fix flaky test caused by unreliable remote cluster stalling --- muted-tests.yml | 6 ------ .../FieldCapsForceConnectTimeoutIT.java | 18 ++++++++++-------- .../RemoteSearchForceConnectTimeoutIT.java | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/muted-tests.yml b/muted-tests.yml index aa7da5e98132c..9cd0fcb59df8d 100644 --- a/muted-tests.yml +++ b/muted-tests.yml @@ -479,9 +479,6 @@ tests: - class: org.elasticsearch.xpack.esql.ccq.MultiClustersIT method: testLookupJoinAliasesSkipOld issue: https://github.com/elastic/elasticsearch/issues/131697 -- class: org.elasticsearch.indices.cluster.RemoteSearchForceConnectTimeoutIT - method: testTimeoutSetting - issue: https://github.com/elastic/elasticsearch/issues/131656 - class: org.elasticsearch.xpack.stack.StackYamlIT method: test {yaml=stack/10_basic/Test wrong data_stream type - logs from 9.2.0} issue: https://github.com/elastic/elasticsearch/issues/131803 @@ -605,9 +602,6 @@ tests: - class: org.elasticsearch.index.mapper.vectors.DenseVectorFieldIndexTypeUpdateIT method: testDenseVectorMappingUpdate {initialType=int4_hnsw updateType=bbq_disk} issue: https://github.com/elastic/elasticsearch/issues/132165 -- class: org.elasticsearch.indices.cluster.FieldCapsForceConnectTimeoutIT - method: testTimeoutSetting - issue: https://github.com/elastic/elasticsearch/issues/132179 - class: org.elasticsearch.index.mapper.vectors.DenseVectorFieldIndexTypeUpdateIT method: "testDenseVectorMappingUpdate {initialType=bbq_flat updateType=bbq_disk #2}" issue: https://github.com/elastic/elasticsearch/issues/132184 diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/FieldCapsForceConnectTimeoutIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/FieldCapsForceConnectTimeoutIT.java index 96d2b4190f75d..07474968e2f94 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/FieldCapsForceConnectTimeoutIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/FieldCapsForceConnectTimeoutIT.java @@ -73,12 +73,14 @@ protected Map skipUnavailableForRemoteClusters() { public void testTimeoutSetting() { var latch = new CountDownLatch(1); - for (String nodeName : cluster(LOCAL_CLUSTER).getNodeNames()) { - MockTransportService mts = (MockTransportService) cluster(LOCAL_CLUSTER).getInstance(TransportService.class, nodeName); - - mts.addConnectBehavior( - cluster(LINKED_CLUSTER_1).getInstance(TransportService.class, (String) null), - ((transport, discoveryNode, profile, listener) -> { + for (String localNodeName : cluster(LOCAL_CLUSTER).getNodeNames()) { + MockTransportService localMts = (MockTransportService) cluster(LOCAL_CLUSTER).getInstance( + TransportService.class, + localNodeName + ); + for (String remoteNodeName : cluster(LINKED_CLUSTER_1).getNodeNames()) { + TransportService remoteTs = cluster(LINKED_CLUSTER_1).getInstance(TransportService.class, remoteNodeName); + localMts.addConnectBehavior(remoteTs, ((transport, discoveryNode, profile, listener) -> { try { latch.await(); } catch (InterruptedException e) { @@ -86,8 +88,8 @@ public void testTimeoutSetting() { } transport.openConnection(discoveryNode, profile, listener); - }) - ); + })); + } } // Add some dummy data to prove we are communicating fine with the remote. diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/RemoteSearchForceConnectTimeoutIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/RemoteSearchForceConnectTimeoutIT.java index 5dd200f2b4ce9..7b6b0190d682e 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/RemoteSearchForceConnectTimeoutIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/indices/cluster/RemoteSearchForceConnectTimeoutIT.java @@ -70,12 +70,14 @@ protected Map skipUnavailableForRemoteClusters() { public void testTimeoutSetting() { var latch = new CountDownLatch(1); - for (String nodeName : cluster(LOCAL_CLUSTER).getNodeNames()) { - MockTransportService mts = (MockTransportService) cluster(LOCAL_CLUSTER).getInstance(TransportService.class, nodeName); - - mts.addConnectBehavior( - cluster(REMOTE_CLUSTER_1).getInstance(TransportService.class, (String) null), - ((transport, discoveryNode, profile, listener) -> { + for (String localNodeName : cluster(LOCAL_CLUSTER).getNodeNames()) { + MockTransportService localMts = (MockTransportService) cluster(LOCAL_CLUSTER).getInstance( + TransportService.class, + localNodeName + ); + for (String remoteNodeName : cluster(REMOTE_CLUSTER_1).getNodeNames()) { + TransportService remoteTs = cluster(REMOTE_CLUSTER_1).getInstance(TransportService.class, remoteNodeName); + localMts.addConnectBehavior(remoteTs, ((transport, discoveryNode, profile, listener) -> { try { latch.await(); } catch (InterruptedException e) { @@ -83,8 +85,8 @@ public void testTimeoutSetting() { } transport.openConnection(discoveryNode, profile, listener); - }) - ); + })); + } } // Add some dummy data to prove we are communicating fine with the remote. From 21de54add07b48a0937400ba360435f4801d19dd Mon Sep 17 00:00:00 2001 From: Pawan Kartik Date: Mon, 11 Aug 2025 13:11:59 +0100 Subject: [PATCH 2/2] Fix line ending --- muted-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/muted-tests.yml b/muted-tests.yml index 58b3182bfb9c8..e34ffd493ea58 100644 --- a/muted-tests.yml +++ b/muted-tests.yml @@ -564,4 +564,4 @@ tests: # issue: "https://github.com/elastic/elasticsearch/..." # - class: "org.elasticsearch.xpack.esql.**" # method: "test {union_types.MultiIndexIpStringStatsInline *}" -# issue: "https://github.com/elastic/elasticsearch/..." \ No newline at end of file +# issue: "https://github.com/elastic/elasticsearch/..."