From 0cf0d73813e7732234e2a89611f05b9faa165ad2 Mon Sep 17 00:00:00 2001 From: Armin Braun Date: Wed, 19 Sep 2018 06:05:36 +0200 Subject: [PATCH] TESTS: Set SO_LINGER = 0 for MockNioTransport (#32560) * TESTS: Set SO_LINGER = 0 for MockNioTransport * Prevents lingering sockets in TIME_WAIT piling up during test runs and leading to port collisions that manifest as timeouts * Fixes #32552 --- .../main/java/org/elasticsearch/transport/MockTcpTransport.java | 1 + .../java/org/elasticsearch/transport/nio/MockNioTransport.java | 1 + 2 files changed, 2 insertions(+) diff --git a/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java b/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java index 996508bdb88..99aa540b684 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java @@ -182,6 +182,7 @@ public class MockTcpTransport extends TcpTransport { executor.submit(() -> { try { socket.connect(address); + socket.setSoLinger(false, 0); channel.loopRead(executor); connectListener.onResponse(null); } catch (Exception ex) { diff --git a/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java b/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java index 19543cfdcbb..89df9166431 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java @@ -193,6 +193,7 @@ public class MockNioTransport extends TcpTransport { BytesChannelContext context = new BytesChannelContext(nioChannel, selector, (e) -> exceptionCaught(nioChannel, e), readWriteHandler, new InboundChannelBuffer(pageSupplier)); nioChannel.setContext(context); + nioChannel.setSoLinger(0); return nioChannel; }