From bea9b3acfa500adf40163f8587505757de34afb9 Mon Sep 17 00:00:00 2001 From: Dmitriy Kruglov Date: Thu, 2 May 2024 15:26:09 +0200 Subject: [PATCH] Fix session leak in PeersV2NodeRefreshIT test PeersV2NodeRefreshIT#should_successfully_send_peers_v2_node_refresh_query integration test does not close its test session, leading to leaks when integration tests suite is executed in CI. This affects SessionLeakIT#should_warn_when_session_count_exceeds_threshold test, which sees the leaked session and fails due to an unexpected number of active sessions. The change wraps the test in try-with block so that the test session is autoclosed at the end, preventing it from affecting subsequent tests. --- .../oss/driver/core/PeersV2NodeRefreshIT.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/integration-tests/src/test/java/com/datastax/oss/driver/core/PeersV2NodeRefreshIT.java b/integration-tests/src/test/java/com/datastax/oss/driver/core/PeersV2NodeRefreshIT.java index 52a5b6eef53..06ac146018c 100644 --- a/integration-tests/src/test/java/com/datastax/oss/driver/core/PeersV2NodeRefreshIT.java +++ b/integration-tests/src/test/java/com/datastax/oss/driver/core/PeersV2NodeRefreshIT.java @@ -56,17 +56,18 @@ public static void tearDown() { @Test public void should_successfully_send_peers_v2_node_refresh_query() throws InterruptedException, ExecutionException { - CqlSession session = - CqlSession.builder().addContactPoint(cluster.node(1).inetSocketAddress()).build(); - Node node = findNonControlNode(session); - ((InternalDriverContext) session.getContext()) - .getMetadataManager() - .refreshNode(node) - .toCompletableFuture() - .get(); - assertThat(hasNodeRefreshQuery()) - .describedAs("Expecting peers_v2 node refresh query to be present but it wasn't") - .isTrue(); + try (CqlSession session = + CqlSession.builder().addContactPoint(cluster.node(1).inetSocketAddress()).build()) { + Node node = findNonControlNode(session); + ((InternalDriverContext) session.getContext()) + .getMetadataManager() + .refreshNode(node) + .toCompletableFuture() + .get(); + assertThat(hasNodeRefreshQuery()) + .describedAs("Expecting peers_v2 node refresh query to be present but it wasn't") + .isTrue(); + } } private Node findNonControlNode(CqlSession session) {