Skip to content

Commit 11997c3

Browse files
CR: Add test
1 parent d660135 commit 11997c3

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

server/src/test/java/org/elasticsearch/transport/RemoteClusterConnectionTests.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,4 +1350,33 @@ public void close() {
13501350
}
13511351
}
13521352
}
1353+
1354+
public void testLazyResolveTransportAddress() throws Exception {
1355+
List<DiscoveryNode> knownNodes = new CopyOnWriteArrayList<>();
1356+
try (MockTransportService seedTransport = startTransport("seed_node", knownNodes, Version.CURRENT);
1357+
MockTransportService discoverableTransport = startTransport("discoverable_node", knownNodes, Version.CURRENT)) {
1358+
DiscoveryNode seedNode = seedTransport.getLocalDiscoNode();
1359+
knownNodes.add(seedTransport.getLocalDiscoNode());
1360+
knownNodes.add(discoverableTransport.getLocalDiscoNode());
1361+
Collections.shuffle(knownNodes, random());
1362+
1363+
try (MockTransportService service = MockTransportService.createNewService(Settings.EMPTY, Version.CURRENT, threadPool, null)) {
1364+
service.start();
1365+
service.acceptIncomingRequests();
1366+
AtomicInteger resolveCount = new AtomicInteger(0);
1367+
Supplier<DiscoveryNode> seedSupplier = () -> {
1368+
resolveCount.incrementAndGet();
1369+
return seedNode;
1370+
};
1371+
try (RemoteClusterConnection connection = new RemoteClusterConnection(Settings.EMPTY, "test-cluster",
1372+
Arrays.asList(seedSupplier), service, Integer.MAX_VALUE, n -> true)) {
1373+
updateSeedNodes(connection, Arrays.asList(seedSupplier));
1374+
// Closing connection leads to RemoteClusterConnection.ConnectHandler.collectRemoteNodes
1375+
// being called again so we try to resolve the same seed node's host twice
1376+
discoverableTransport.close();
1377+
}
1378+
assertEquals(2, resolveCount.get());
1379+
}
1380+
}
1381+
}
13531382
}

0 commit comments

Comments
 (0)