This is an automated email from the ASF dual-hosted git repository.

onichols pushed a commit to branch support/1.14
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.14 by this push:
     new 9099e1f  GEODE-9877: Use ServerSocket to create interfering port 
(#7180)
9099e1f is described below

commit 9099e1fe70b02886ec7d65d21d8b9c0e60b94677
Author: Jens Deppe <jde...@vmware.com>
AuthorDate: Thu Dec 9 12:25:13 2021 -0800

    GEODE-9877: Use ServerSocket to create interfering port (#7180)
    
    - For some unknown reason `startupFailsGivenPortAlreadyInUse` started to
      fail after a seemingly innocuous Ubuntu base image bump. The problem
      may also have been triggered by arbitrary test ordering changes since
      the test did not fail on its own, but only in conjunction with running
      other tests beforehand.
      Specifically, the test was failing when binding the interfering port
      (bind exception). The port used was always in the TIME_WAIT state left
      from previous tests.
      Using a `ServerSocket`, instead of a regular socket, fixes the problem
      since it actually 'uses' the port and implicitly allows for port
      reuse.
    
    - Use ServerSocket consistently. Rename test to be more appropriate
    
    (cherry picked from commit 310c647da6ee4cc4a1eadc6df174d998e69afb31)
---
 .../internal/executor/GeodeRedisServerStartUpAcceptanceTest.java    | 6 +++---
 .../org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java    | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/geode-apis-compatible-with-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/GeodeRedisServerStartUpAcceptanceTest.java
 
b/geode-apis-compatible-with-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/GeodeRedisServerStartUpAcceptanceTest.java
index 385a5a7..7cb2659 100644
--- 
a/geode-apis-compatible-with-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/GeodeRedisServerStartUpAcceptanceTest.java
+++ 
b/geode-apis-compatible-with-redis/src/acceptanceTest/java/org/apache/geode/redis/internal/executor/GeodeRedisServerStartUpAcceptanceTest.java
@@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.IOException;
 import java.net.InetSocketAddress;
-import java.net.Socket;
+import java.net.ServerSocket;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -47,7 +47,7 @@ public class GeodeRedisServerStartUpAcceptanceTest {
         "--compatible-with-redis-port", String.valueOf(port));
     GfshExecution execution;
 
-    try (Socket interferingSocket = new Socket()) {
+    try (ServerSocket interferingSocket = new ServerSocket()) {
       interferingSocket.bind(new InetSocketAddress("localhost", port));
       execution = GfshScript.of(startServerCommand)
           .expectFailure()
@@ -69,7 +69,7 @@ public class GeodeRedisServerStartUpAcceptanceTest {
         "--compatible-with-redis-port", String.valueOf(port));
     GfshExecution execution;
 
-    try (Socket interferingSocket = new Socket()) {
+    try (ServerSocket interferingSocket = new ServerSocket()) {
       interferingSocket.bind(new InetSocketAddress("0.0.0.0", port));
       execution = GfshScript.of(startServerCommand)
           .expectFailure()
diff --git 
a/geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
 
b/geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
index 135bded..2cae34e 100644
--- 
a/geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
+++ 
b/geode-apis-compatible-with-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
@@ -24,7 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.net.InetSocketAddress;
-import java.net.Socket;
+import java.net.ServerSocket;
 
 import org.junit.ClassRule;
 import org.junit.Rule;
@@ -95,7 +95,7 @@ public class GeodeRedisServerStartupDUnitTest {
     int port = AvailablePortHelper.getRandomAvailableTCPPort();
 
     addIgnoredException("Could not start server compatible with Redis");
-    try (Socket interferingSocket = new Socket()) {
+    try (ServerSocket interferingSocket = new ServerSocket()) {
       interferingSocket.bind(new InetSocketAddress("localhost", port));
       assertThatThrownBy(() -> cluster.startServerVM(0, s -> s
           .withProperty(REDIS_PORT, "" + port)

Reply via email to